server.properties არის vanilla Minecraft სერვერის მთელი კონფიგურაცია და Paper-ის სერვერის პირველი შრე. ეს არის დაახლოებით სამოცდახუთი გასაღები-მნიშვნელობის წყვილის ბრტყელი სია, რომელსაც სერვერი პირველივე გაშვებისას წერს, გაშვებისას ერთხელ კითხულობს და მერე აღარასოდეს. უმეტესობას არასდროს შეეხები. დაახლოებით ათეული განსაზღვრავს, როგორია სერვერზე თამაში, სამი-ოთხი კი იმას, გადაურჩება თუ არა სერვერი უცნობებთან შეხვედრას.
ეს არის ყველა გასაღები, რომელიც მიმდინარე ვერსიაში არსებობს, დაჯგუფებული იმის მიხედვით, რას აკეთებს, თავისი ნაგულისხმევი მნიშვნელობით და იმ მნიშვნელობით, რომლის დაყენებაც ღირს. სადაც გასაღები კონკრეტულ ვერსიაში დაემატა ან წაიშალა, ეს მითითებულია - ფაილი 1.16-ზე იგივე არ არის, რაც 1.21-ზე, და გზამკვლევი, რომელიც სხვას ამტკიცებს, გაგიშვებს ისეთი გასაღებების საძებნელად, რომლებიც არ არსებობს.
როგორ მუშაობს ფაილი და როგორ დაარედაქტირო უსაფრთხოდ#
ეს არის Java properties ფაილი. ანუ თითო ხაზზე ერთი key=value, მნიშვნელობებს გარშემო ბრჭყალები არ ადევს, =-ის ირგვლივ ჰარები არ არის, კომენტარისთვის კი # გამოიყენება. ორი შედეგი ხალხს ხშირად აზიანებს:
- მნიშვნელობის შიგნით ორწერტილი უკუდახრილი ხაზით უნდა დაიეკრანოს, სწორედ ამიტომ არის ნაგულისხმევი level type ჩაწერილი როგორც
level-type=minecraft\:normalდა არაminecraft:normal. დაუეკრანებელი ვარიანტის ჩასმა ზოგ ვერსიაზე ჩუმად ნაგულისხმევ სამყაროს გაძლევს. - Windows-ის სტილის გზაში უკუდახრილი ხაზი გაორმაგებული უნდა იყოს.
ფაილი იკითხება ზუსტად ერთხელ, სერვერის გაშვებისას. სერვერის მუშაობისას რედაქტირება არაფერს ცვლის და /reload მას თავიდან არ კითხულობს - /reload მხოლოდ plugin-ების კონფიგურაციას ტვირთავს თავიდან და სხვა არაფერს. შეცვალე ფაილი და მერე გადატვირთე. საპირისპირო რამეც ხდება: რამდენიმე ბრძანება ფაილში უკან წერს, ამიტომ /whitelist on დისკზე white-list=true-ს აყენებს. თუ ფაილს სერვერის მუშაობისას ცვლი, ამ ჩაწერამ შენი ცვლილება შეიძლება გადაფაროს, ამიტომ ჯერ სერვერი გააჩერე.
#Minecraft server propertiesmotd=§6The Longhouse §8| §fsurvival 1.21max-players=24difficulty=normalview-distance=8simulation-distance=6spawn-protection=0white-list=trueenforce-whitelist=true§ არის პარაგრაფის ნიშანი, რომლითაც Minecraft-ის ძველი ფერის კოდები იწყება. სიტყვასიტყვით § სიმბოლოს ჩაწერაც ხშირად მუშაობს, მაგრამ ეკრანირებული ფორმა ყველა რედაქტორსა და ყველა კოდირებაზე გადარჩება, ამიტომ ის გამოიყენე. MOTD-ში ფერის კოდები მხოლოდ ძველი თექვსმეტია - hex ფერი და JSON ამ ველში არ არსებობს. სერვერის ხატულა საერთოდ არ არის პარამეტრი: ეს არის 64 x 64 PNG სახელად server-icon.png სერვერის ძირეულ საქაღალდეში. MOTD, ხატულა და resource pack-ები ფორმატირებას დაწვრილებით განიხილავს.
RE:NODE-ზე ამ ფაილს პანელის ფაილ მენეჯერში ცვლი, რომელსაც სინტაქსის გამოკვეთა აქვს და ადგილზე ინახავს, ან SFTP-ით, თითო სერვერზე გენერირებული მონაცემებით. ორივე შემთხვევაში ცვლილების ასამოქმედებლად შემდეგ გადატვირთე.
გასაღებები, რომლებიც სერვერზე თამაშის შეგრძნებას ცვლის#
თუ ოდესმე მხოლოდ რვა ხაზს დაარედაქტირებ, ეს იყოს ისინი.
| გასაღები | ნაგულისხმევი | რა დააყენო |
|---|---|---|
motd | A Minecraft Server | რაიმე, რაც სერვერს სიაში გამოარჩევს |
max-players | 20 | რასაც შენი მეხსიერება და CPU ატარებს |
difficulty | easy | normal survival სერვერისთვის, hard თუ სერიოზულად გინდა |
gamemode | survival | ჩვეულებრივ ხელს არ ახლებ |
pvp | true | false მშენებლობის ან საოჯახო სერვერზე |
view-distance | 10 | 8 უმეტეს სერვერზე, 6 დატვირთულზე |
simulation-distance | 10 | 6, ზოგჯერ 5 |
spawn-protection | 16 | 0, თუ spawn საჯარო მშენებლობა არ არის |
difficulty 1.14-სა და შემდეგ ვერსიებზე სახელებით იღებს peaceful, easy, normal ან hard; უფრო ძველ ვერსიებზე 0-დან 3-მდე რიცხვები იყო. ის ფაილიდან ყოველ გაშვებაზე გამოიყენება, ამიტომ /difficulty ბრძანება მას მხოლოდ შემდეგ გადატვირთვამდე ცვლის. peaceful მხოლოდ მტრული არსებების გაჩენას არ აჩერებს - ის უკვე არსებულებსაც აქრობს და შიმშილს სიკვდილის უნარს ართმევს, რაც უფრო დიდი ცვლილებაა, ვიდრე უმეტესობას ჰგონია.
spawn-protection კვადრატია და არა წრე: მნიშვნელობა რადიუსია ბლოკებში, ამიტომ 16 სამყაროს spawn-ის გარშემო 33 x 33 ზონას იცავს, რათა იქ აშენება ვერავინ შეძლოს, ვინც ოპერატორი არ არის. ის ნაგულისხმევად ჩართულია და ბნევს იმათ, ვისაც პირველი სახლის დადგმა არ გამოსდით. პირად სერვერზე 0 დააყენე. ის საერთოდ არაფერს აკეთებს, სანამ ერთი ოპერატორი მაინც არ გყავს, სწორედ ამიტომ ჩანს, თითქოს თავისით ჩაირთო იმ დღეს, როცა საკუთარ თავს op-ს აძლევ.
allow-flight=false ანტიჩიტის პარამეტრი არ არის, სახელის მიუხედავად. ის განსაზღვრავს, გააგდებს თუ არა სერვერი მოთამაშეს, რომელიც ჰაერში დაახლოებით ხუთ წამზე მეტხანს დგას აღიარებული მიზეზის გარეშე. ნებისმიერ plugin-ს, რომელიც ფრენას იძლევა, და ნებისმიერ elytra-ზე ორიენტირებულ სერვერს ის true-ზე სჭირდება, და ის ჩიტერობას არ ამარტივებს, რადგან რეალურ ფრენის ჰაკებს ის ისედაც ვერ აღმოაჩენს.
player-idle-timeout=0 არის წუთების რაოდენობა, რომლის შემდეგაც უმოქმედო მოთამაშე გააქვთ, ხოლო 0 ნიშნავს არასოდეს. დატვირთულ სერვერზე, სადაც ადგილები ცოტაა, 20 ადგილებს ათავისუფლებს. ის ითვლება ბოლო შეყვანიდან და არა ბოლო გადაადგილებიდან.
სამყაროს გენერაცია და თავად სამყარო#
| გასაღები | ნაგულისხმევი | რას აკეთებს |
|---|---|---|
level-name | world | საქაღალდე, რომელშიც სამყარო ცხოვრობს |
level-seed | ცარიელი | seed სამყაროსთვის, რომელიც ჯერ არ არსებობს |
level-type | minecraft\:normal | გენერატორის პრესეტი |
generator-settings | {} | JSON ბრტყელი და ერთბიომიანი სამყაროებისთვის |
generate-structures | true | სოფლები, სიმაგრეები, ყველაფერი გენერირებული |
max-world-size | 29999984 | სამყაროს საზღვრის რადიუსის ზღვარი, ბლოკებში |
allow-nether | true | false Nether-ს მთლიანად კეტავს |
hardcore | false | სირთულე hard-ზე ჩაკეტილია, სიკვდილი ნიშნავს დამკვირვებელს |
initial-enabled-packs | vanilla | ახალი სამყაროსთვის ჩართული data pack-ები |
initial-disabled-packs | ცარიელი | ახალი სამყაროსთვის გამორთული data pack-ები |
level-name არის ჩამრთველი, რომელსაც ხალხი ამჩნევს. მიუთითე საქაღალდეზე, რომელიც არ არსებობს, და სერვერი შემდეგ გაშვებაზე იქ ახალ სამყაროს შექმნის, ძველს დისკზე ხელუხლებლად დატოვებს. ასე იწყებ ახალ სეზონს არაფრის წაშლის გარეშე და ასე „კარგავ“ შემთხვევით სამყაროს სახელის შეცდომით. დააბრუნე უკან და ორიგინალი დაბრუნდება.
level-seed მხოლოდ სამყაროს შექმნისას მოქმედებს. როგორც კი level.dat არსებობს, seed შიგნით ჩადებულია და ამ ხაზის შეცვლა საერთოდ არაფერს აკეთებს. level-type იღებს minecraft:normal, minecraft:flat, minecraft:large_biomes, minecraft:amplified და minecraft:single_biome_surface მნიშვნელობებს 1.19-სა და შემდეგ ვერსიებზე; სახელთა სივრცეების შემოღებამდე ისინი იყო შიშველი სიტყვები default, flat, largebiomes, amplified. გაიხსენე დაეკრანებული ორწერტილი.
generate-structures=false კონკრეტულ შემთხვევაში ღირს: სერვერი, სადაც გინდა გამოქვაბულები, მადნები და ბიომები, მაგრამ არა სოფლები, ტაძრები და სიმაგრეები გასაძარცვად. ის არ გაქრობს End პორტალის ოთახს იმ აზრით, რომელიც მნიშვნელოვანია - სიმაგრეების გარეშე End-ში plugin-ის ან ხელით დადგმული პორტალის გარეშე ვერ მოხვდები, ამიტომ გამორთე ცნობიერად.
initial-enabled-packs და initial-disabled-packs მხოლოდ სამყაროს შექმნისას მოქმედებს. მოგვიანებით დამატებული data pack-ები world/datapacks/-ში მოხვდება და /datapack-ით იმართება - იხილე datapack-ების გზამკვლევი.
თამაშის წესები ამ ფაილში არ არის. keepInventory, doFireTick, randomTickSpeed, mobGriefing და დანარჩენები level.dat-ში ცხოვრობს და /gamerule-ით დგება, ანუ ისინი გადატვირთვას თავისით გადაურჩებიან და აქ ვერ დააყენებ. სერვერის ბრძანებების cheatsheet ჩამოთვლის მათ, ვისი შეცვლაც ღირს.
Performance გასაღებები და რომელია მართლა მნიშვნელოვანი#
| გასაღები | ნაგულისხმევი | შენიშვნები |
|---|---|---|
view-distance | 10 | თითო მოთამაშისთვის გაგზავნილი chunk-ები. ყველაზე დიდი ბერკეტი |
simulation-distance | 10 | თითო მოთამაშის გარშემო chunk-ები, რომლებიც tick-ავენ. 1.18 და შემდეგ |
entity-broadcast-range-percentage | 100 | რა მანძილზე იგზავნება არსებები კლიენტებთან |
network-compression-threshold | 256 | პაკეტის ზომა, რომლის ზემოთაც პაკეტები იკუმშება |
max-tick-time | 60000 | Watchdog: მილიწამები, რის შემდეგაც სერვერი თავს კლავს |
max-chained-neighbor-updates | 1000000 | Redstone ჯაჭვის ზღვარი, ამცირებს update suppression-ის ლაგს |
sync-chunk-writes | true | chunk-ების ჩაწერის სინქრონული flush |
use-native-transport | true | Linux epoll ქსელი. დატოვე ჩართული |
region-file-compression | deflate | 1.20.5 და შემდეგ. ასევე none და lz4 |
pause-when-empty-seconds | 60 | 1.21.2 და შემდეგ. ცარიელისას tick-ს აჩერებს |
rate-limit | 0 | პაკეტები წამში გაგდებამდე. 0 გამორთულია |
view-distance არის რიცხვი, რომელიც პირველ რიგში უნდა შეცვალო და ბოლო რიგში. რადიუსის შიგნით ყველა chunk გენერირდება, იტვირთება, მეხსიერებაში ინახება და ყველა მოთამაშეს ეგზავნება, ვისაც ის ხედავს, ამიტომ ფასი კვადრატულია: 10-დან 8-ზე გადასვლა დატვირთული ფართობის დაახლოებით მესამედს აშორებს, 10-დან 6-ზე კი თითქმის ორ მესამედს. 2 GB სერვერზე, სადაც რამდენიმე მოთამაშეზე მეტია, 8 გონივრული ნაგულისხმევია, 6 კი ის, სადაც ეშვები, როცა tick rate ზარალდება. 5-ზე ქვევით უკვე ცუდი შეგრძნებაა, რადგან ნისლი და ობიექტების უცებ გაჩენა თვალშისაცემი ხდება.
simulation-distance-მა, რომელიც 1.18-ში დაემატა, ძველი ერთი რიცხვი ორად გაყო. View distance არის ის, რასაც მოთამაშეები ხედავენ; simulation distance არის ის, რაც მართლა tick-ავს - მობები, მოსავალი, redstone, hopper-ები, ღუმელები. პრაქტიკაში ის view distance-ით არის შემოსაზღვრული და მისი დაწევა უფრო იაფია, რადგან მოთამაშეს რვა chunk-ზე შეუძლია ხედავდეს, მაშინ როცა მათგან მხოლოდ ექვსს სჭირდება მუშაობა. საქმე ფერმებშია: ყველაფერი, რაც ყველა ონლაინ მოთამაშის simulation distance-ის მიღმაა, ჩერდება, ამიტომ 4 ჩუმად გააფუჭებს რკინის ფერმას, რომელიც ვინმემ თავისი ხედვის კიდეზე ააშენა.
network-compression-threshold=256 256 ბაიტზე დიდ ყველა პაკეტს კუმშავს. მისი -1-ზე დაყენება კომპრესიას მთლიანად თიშავს, რაც გამტარუნარიანობას CPU-ში ცვლის და სწორია მხოლოდ ლოკალურ ქსელში - მაგალითად, იმავე ჰოსტზე proxy-ს უკან. 0 ყველაფერს კუმშავს და თითქმის ყოველთვის უარესია.
max-tick-time არის watchdog და არა performance პარამეტრი. თუ ერთი tick 60 წამზე მეტ ხანს გრძელდება, სერვერი ვარაუდობს, რომ ჩაიკეტა, thread trace-ს ჩამოყრის და გაითიშება. Paper-ს იმავეს საკუთარი ადრეული გაფრთხილების ვერსია აქვს. მისი -1-ზე დაყენება watchdog-ს თიშავს, რაც ზოგჯერ გამოგადგება უზარმაზარი სამყაროს ჩატვირთვის გამართვისას და ცუდი მუდმივი მდგომარეობაა - კარგავ crash report-ს, რომელიც გეუბნება, რა გაიჭედა.
pause-when-empty-seconds 1.21.2-ში გამოჩნდა და პატარა სერვერზე მართლა გამოსადეგია: მითითებული წამების შემდეგ, როცა არავინ არის ონლაინ, სერვერი სამყაროს tick-ვას აჩერებს და CPU თითქმის ნულამდე ეცემა. ვინმეს შემოსვლისთანავე მყისიერად განახლდება. ეს ასევე ნიშნავს, რომ დაგეგმილი დავალებები და დროზე დამოკიდებული ფერმები ჩერდება, ამიტომ თუ რამე გაქვს, რასაც ცარიელ სერვერთანაც უნდა ემუშავა, 0 დააყენე.
ყველაფერი, რაც ამ ფაილს მიღმაა, Paper-ის საკუთარი კონფიგურაციაა და დიდი მოგებაც სწორედ იქაა - entity activation ranges, თითო მოთამაშეზე მობების გაჩენა, redstone-ის იმპლემენტაცია და chunk-ების გაგზავნის სიჩქარე. Paper-ის ოპტიმიზაციის გზამკვლევი ამას ფარავს, ხოლო რატომ ეცემა TPS გვასწავლის, როგორ გაარკვიო, რომელი გჭირდება.
წვდომა, ავთენტიფიკაცია და მოდერაცია#
| გასაღები | ნაგულისხმევი | რას აკეთებს |
|---|---|---|
online-mode | true | ყველა მოთამაშის შემოწმება Mojang-თან |
white-list | false | შესვლა მხოლოდ სიაში მყოფებს შეუძლიათ |
enforce-whitelist | false | სიაში არმყოფი, უკვე ონლაინ მყოფების გაგდება |
enforce-secure-profile | true | ხელმოწერილი ჩატის მოთხოვნა |
prevent-proxy-connections | false | მოთამაშეების უარყოფა, რომელთა ISP არ ემთხვევა |
accepts-transfers | false | 1.20.5 და შემდეგ. transfer პაკეტების მიღება |
op-permission-level | 4 | დონე, რომელსაც /op გასცემს |
function-permission-level | 2 | დონე, რომლითაც function-ები და data pack-ები მუშაობს |
broadcast-console-to-ops | true | კონსოლის ბრძანებების ჩვენება ოპერატორებისთვის |
broadcast-rcon-to-ops | true | RCON ბრძანებების ჩვენება ოპერატორებისთვის |
log-ips | true | მოთამაშეების მისამართების ჩაწერა ლოგში |
hide-online-players | false | მოთამაშეების ნიმუშის დამალვა სერვერების სიაში |
enable-status | true | საერთოდ უპასუხოს სერვერების სიის ping-ს |
text-filtering-config | ცარიელი | გზა ჩატის ფილტრის კონფიგურაციამდე |
enforce-secure-profile=true კლიენტებს ავალდებულებს ჰქონდეთ Mojang-ის მიერ ხელმოწერილი ჩატის პროფილი. მისი გამორთვა ზოგ კრეკულ და შეცვლილ კლიენტს შემოსვლის საშუალებას აძლევს და ეს კიდევ ერთი რამაა, რასაც ხალხი არასწორი მიზეზით აკეთებს. proxy backend-ზე ის ჩვეულებრივ false-ზეა, რადგან proxy თავად აგვარებს.
white-list და enforce-whitelist წყვილია, რომელიც უცნაურად იქცევა. whitelist-ის ჩართვა ახალ მოსულებს მაშინვე აჩერებს, მაგრამ უკვე დაკავშირებულებს ადგილზე ტოვებს; enforce-whitelist=true არის ის, რაც მათ აშორებს. ოპერატორები whitelist-ს მთლიანად უვლიან გვერდს, თუ enforcement ჩართული არ არის. Whitelist-ები და უფლებები სამუშაო პროცესს აღწერს, თავად ფაილი კი UUID-ით არის ინდექსირებული და არა სახელით.
log-ips=false განსახილველია, თუ არ გინდა მოთამაშეების მისამართები ისეთ ლოგებში ინახებოდეს, რომლებსაც გამართვისთვის დახმარების თხოვნისას აზიარებენ. კარგავ ალტერნატიული ანგარიშის მისამართით დაკავშირების შესაძლებლობას, რაც რეალური მოდერაციის ინსტრუმენტია, ამიტომ ეს გაცვლაა და არა სუფთა მოგება. ლოგები, რომლებიც ღირს შენახვად უფრო ფართო კითხვას განიხილავს.
prevent-proxy-connections=true Mojang-ის ავთენტიფიკაციის პასუხს ეკითხება, მოთამაშის კავშირი VPN-ს ან proxy-ს ჰგავს თუ არა, და თუ ჰგავს, უარყოფს მას. ის ცრუ დადებითს იძლევა ზოგიერთ მობილურ ქსელსა და კორპორატიულ კავშირზე მყოფ ლეგიტიმურ მოთამაშეებზე, ამიტომ ეს უხეში ინსტრუმენტია.
Query, RCON და დისტანციური მართვა#
| გასაღები | ნაგულისხმევი | რას აკეთებს |
|---|---|---|
enable-query | false | GameSpy4 query პროტოკოლზე პასუხი |
query.port | 25565 | UDP პორტი query-სთვის |
enable-rcon | false | დისტანციური კონსოლის ჩართვა |
rcon.port | 25575 | TCP პორტი RCON-ისთვის |
rcon.password | ცარიელი | აუცილებელია, თუ RCON ჩართულია |
enable-jmx-monitoring | false | JVM მეტრიკების გამოქვეყნება JMX-ით |
Query არის მხოლოდ კითხვის პროტოკოლი, რომელიც UDP-ით პასუხობს კითხვას „ვინ არის ონლაინ, რა ვერსიაა, რა რუკაა“. სერვერების სიის ვებსაიტები და სტატუს ბოტები მას იყენებენ. მისი ჩართვა არაფერი ღირს, გარდა ერთი ღია UDP პორტისა, და სერვერების სიის ping-ისგან განსხვავებით, მას მოთამაშეების სრული სიის მოწოდება შეუძლია.
RCON არის დისტანციური კონსოლი: უბრალო TCP კავშირი, პაროლი და შემდეგ სერვერის ნებისმიერი ბრძანება. ორი ფაქტი გამომდინარეობს „უბრალო TCP“-დან და „სერვერის ნებისმიერი ბრძანებიდან“. პაროლი ღია ტექსტად იგზავნება და ვისაც ის აქვს, შენს სერვერზე მე-4 დონე აქვს. 25575 არასოდეს გახსნა ინტერნეტისთვის რამის გარეშე, რაც მის წინ დგას, გამოიყენე გრძელი შემთხვევითი პაროლი და, სადაც შეგიძლია, პანელის კონსოლს მიანიჭე უპირატესობა. RCON უსაფრთხოდ მოკლეა და ხუთ წუთს ღირს. RE:NODE-ის გეგმები მოიცავს query-სა და RCON-ის გამოყოფას, როცა მათ Network ჩანართზე ამატებ, ხოლო RCON პაროლი თითო სერვერზე გენერირდება და არა შენ მიერ ირჩევა.
Resource pack-ები#
| გასაღები | ნაგულისხმევი | რას აკეთებს |
|---|---|---|
resource-pack | ცარიელი | პირდაპირი ჩამოტვირთვის URL .zip-ისთვის |
resource-pack-sha1 | ცარიელი | იმ ფაილის SHA-1, პატარა ასოებით hex |
resource-pack-prompt | ცარიელი | JSON ტექსტი, რომელიც თანხმობის დიალოგში ჩანს |
resource-pack-id | ცარიელი | 1.20.3 და შემდეგ. UUID პაკეტისთვის |
require-resource-pack | false | უარმთქმელი მოთამაშეების გათიშვა |
URL პირდაპირი ბმული უნდა იყოს ფაილზე - Dropbox-ის ან Google Drive-ის share გვერდი HTML-ს აბრუნებს და არა zip-ს, და კლიენტი ჩუმად ვერ ახერხებს. SHA-1 პრაქტიკაში არჩევითი არ არის: მის გარეშე კლიენტები URL-ით ქეშირებენ და ვერასოდეს ამჩნევენ, რომ პაკეტი ჩაანაცვლე, ამიტომ პაკეტის განახლება ან ახალ ფაილის სახელს ნიშნავს, ან სწორ hash-ს. გამოთვალე ის sha1sum pack.zip-ით და ჩასვი პატარა ასოებით hex.
require-resource-pack=true უარს გათიშვად აქცევს, რაც სწორი პარამეტრია სერვერისთვის, რომლის გეიმფლეიც მორგებულ ტექსტურებზეა დამოკიდებული, და არასწორი სერვერისთვის, სადაც ის მხოლოდ სამკაულია. prompt ველი იღებს ნედლ JSON ტექსტურ კომპონენტს, იმავე ფორმატით, რაც /tellraw-ს აქვს, ამიტომ უბრალო ტექსტი უნდა შეფუთო: {"text":"Please accept our pack"}.
გასაღებები, რომლებზეც წაიკითხავ და რომლებიც აღარ არსებობს#
ძველი გზამკვლევები სავსეა პარამეტრებით, რომლებიც სერვერმა მიატოვა, და მათი ძებნა მთელ შუადღეს ფლანგავს.
max-build-heightწაიშალა 1.17-ში, როცა სამყაროს სიმაღლე სერვერის მაგივრად განზომილების თვისება გახდა.snooper-enabledგაქრა იმ ტელემეტრიასთან ერთად, რომელსაც აკონტროლებდა.announce-player-achievementsგახდაannounceAdvancementsთამაშის წესი.difficulty=1სტილის რიცხვითი მნიშვნელობები 1.14-ში სახელებით ჩანაცვლდა, თუმცა ძველი ფაილები მაინც მიიღება.resource-pack-hashწლების წინ ჩაანაცვლაresource-pack-sha1-მა.
პირიქით, ზოგი გასაღები იმ გზამკვლევზე ახალია, რომელსაც კითხულობ: simulation-distance 1.18-ია, enforce-secure-profile 1.19, accepts-transfers და region-file-compression 1.20.5, bug-report-link 1.21, pause-when-empty-seconds კი 1.21.2. თუ გასაღები შენი სერვერის მიერ გენერირებულ ფაილში არ არის, შენს ვერსიას ის არ აქვს და ხელით დამატება არაფერს აკეთებს.
მაგალითი პრაქტიკიდან: ოცმოთამაშიანი survival სერვერი 4 GB-ზე#
აი მთლიანი server.properties, რომელიც მუშაობს, ნაგულისხმევი მნიშვნელობების გარეშე, რომ გადაწყვეტილებები გამოჩნდეს:
motd=§aThe Longhouse §8» §fSurvival SMPmax-players=24difficulty=normalpvp=trueview-distance=8simulation-distance=6spawn-protection=0allow-flight=trueplayer-idle-timeout=30level-name=worldlevel-seed=white-list=trueenforce-whitelist=trueonline-mode=trueenable-command-block=falseop-permission-level=2enable-rcon=falseenable-query=truenetwork-compression-threshold=256დასაბუთება თანმიმდევრობით: ადვილად წასაკითხი MOTD; ჩვეულებრივ ოცზე ცოტა მეტი ადგილი, რადგან 4 GB ატარებს; normal სირთულე, რადგან easy survival ციკლს ტრივიალურს ხდის; view და simulation distance იმდენზე დაწეული, რამდენსაც 4 GB heap კომფორტულად ინახავს; spawn protection გამორთული, რომ spawn-თან ახლოს მშენებლობა შეიძლებოდეს; ფრენა დაშვებული, რადგან elytra არსებობს და ცრუ გაგდებები პარამეტრზე უარესია; ოცდაათწუთიანი უმოქმედობის გაგდება; whitelist ჩართული და იძულებითი, სანამ მისამართი სადმე წავა; command block-ები გამორთული, რადგან მე-2 დონის op-ის ხელში ისინი დისტანციური კოდის შესრულების ხვრელია; და op-permission-level=2, რომ /op /stop-ის მაგივრად სამშენებლო ინსტრუმენტებს გასცემდეს.
ეს კომბინაცია, დამატებული უფლებების plugin-ით და ღამის backup-ით, არის სერვერი, რომელიც შეგიძლია მუშაობაზე დატოვო. ყველაფერი მის შემდეგ არის დარეგულირება, ესაა Paper-ის გზამკვლევი, ხოლო heap-ის ზომის შერჩევა - JVM-ის გზამკვლევი.
FAQ#
რატომ არაფერი შეცვალა ჩემმა ცვლილებამ server.properties-ში?
ფაილი მხოლოდ გაშვებისას იკითხება. გადატვირთე სერვერი. თუ ის სერვერის მუშაობისას დაარედაქტირე, გადატვირთვის შემდეგ ფაილი თავიდან შეამოწმე - სერვერს შეუძლია გამორთვისას ის თავიდან ჩაწეროს და შენი აკრეფილი გადაფაროს.
რა განსხვავებაა view distance-სა და simulation distance-ს შორის?
View distance არის, რა მანძილზე იგზავნება chunk-ები კლიენტთან, ამიტომ ის განსაზღვრავს, რას ხედავენ მოთამაშეები, და მეხსიერების ხარჯის უმეტეს ნაწილს. Simulation distance არის, რა მანძილზე tick-ავს chunk-ები მართლა, ამიტომ ის განსაზღვრავს, გაჩნდებიან თუ არა მობები, გაიზრდება თუ არა მოსავალი და იმუშავებს თუ არა redstone. Simulation distance-ის დაწევა უფრო იაფია და ნაკლებად შესამჩნევი, მაგრამ ის ფერმებს აჩერებს, რომლებიც მის გარეთაა.
შეიძლება აქ დავაყენო თამაშის წესები, მაგალითად keepInventory?
არა. თამაშის წესები სამყაროშია და არა server.properties-ში. დააყენე ერთხელ /gamerule keepInventory true-ით და ისინი გადატვირთვებს გადაურჩებიან, რადგან level.dat-ში ინახება.
როგორ შევცვალო სამყაროს seed არსებულ სერვერზე?
ვერ შეცვლი. seed სამყაროს გენერირებისას ფიქსირდება. შეცვალე level-name ახალ საქაღალდეზე და დააყენე level-seed, და სერვერი შემდეგ გაშვებაზე ახალ სამყაროს შექმნის, ძველს კი დისკზე დატოვებს.
უსაფრთხოა max-players-ის 20-ზე მეტად აწევა?
თავად პარამეტრი რიცხვის გარდა არაფერს ახორციელებს. შენ გზღუდავს ჩატვირთული chunk-ების მეხსიერება და ერთი ბირთვი tick-ისთვის. აწიე ის view distance-ის დაწევასთან ერთად და თვალი ადევნე tick-ის დროს და არა მოთამაშეების რაოდენობას.
Paper უგულებელყოფს რომელიმე ამ პარამეტრს?
Paper ყველას კითხულობს და თავის შრეებს ამატებს bukkit.yml-ში, spigot.yml-სა და config/paper-*.yml-ში. ზოგი იქ გადაფარულია - განსაკუთრებით თითო სამყაროს view და simulation distance, მობების გაჩენის ლიმიტები და despawn დიაპაზონები - ამიტომ თუ აქ ცვლილება Paper-ზე უშედეგოა, შეამოწმე, ხომ არ აყენებს იმავეს Paper-ის ფაილი.



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