RE:NODE

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

Minecraft server.properties ახსნილი: ყველა გასაღები და ნაგულისხმევი მნიშვნელობა

Minecraft-ის server.properties ფაილის ყველა გასაღები, მათი ნაგულისხმევი მნიშვნელობა და რა უნდა დააყენო სინამდვილეში: view distance, სირთულე, whitelist, MOTD, RCON და query.

0 მკითხველი

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-ს აყენებს. თუ ფაილს სერვერის მუშაობისას ცვლი, ამ ჩაწერამ შენი ცვლილება შეიძლება გადაფაროს, ამიტომ ჯერ სერვერი გააჩერე.

server.properties
#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-ით, თითო სერვერზე გენერირებული მონაცემებით. ორივე შემთხვევაში ცვლილების ასამოქმედებლად შემდეგ გადატვირთე.

გასაღებები, რომლებიც სერვერზე თამაშის შეგრძნებას ცვლის#

თუ ოდესმე მხოლოდ რვა ხაზს დაარედაქტირებ, ეს იყოს ისინი.

გასაღებინაგულისხმევირა დააყენო
motdA Minecraft Serverრაიმე, რაც სერვერს სიაში გამოარჩევს
max-players20რასაც შენი მეხსიერება და CPU ატარებს
difficultyeasynormal survival სერვერისთვის, hard თუ სერიოზულად გინდა
gamemodesurvivalჩვეულებრივ ხელს არ ახლებ
pvptruefalse მშენებლობის ან საოჯახო სერვერზე
view-distance108 უმეტეს სერვერზე, 6 დატვირთულზე
simulation-distance106, ზოგჯერ 5
spawn-protection160, თუ 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-nameworldსაქაღალდე, რომელშიც სამყარო ცხოვრობს
level-seedცარიელიseed სამყაროსთვის, რომელიც ჯერ არ არსებობს
level-typeminecraft\:normalგენერატორის პრესეტი
generator-settings{}JSON ბრტყელი და ერთბიომიანი სამყაროებისთვის
generate-structurestrueსოფლები, სიმაგრეები, ყველაფერი გენერირებული
max-world-size29999984სამყაროს საზღვრის რადიუსის ზღვარი, ბლოკებში
allow-nethertruefalse Nether-ს მთლიანად კეტავს
hardcorefalseსირთულე hard-ზე ჩაკეტილია, სიკვდილი ნიშნავს დამკვირვებელს
initial-enabled-packsvanillaახალი სამყაროსთვის ჩართული 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-distance10თითო მოთამაშისთვის გაგზავნილი chunk-ები. ყველაზე დიდი ბერკეტი
simulation-distance10თითო მოთამაშის გარშემო chunk-ები, რომლებიც tick-ავენ. 1.18 და შემდეგ
entity-broadcast-range-percentage100რა მანძილზე იგზავნება არსებები კლიენტებთან
network-compression-threshold256პაკეტის ზომა, რომლის ზემოთაც პაკეტები იკუმშება
max-tick-time60000Watchdog: მილიწამები, რის შემდეგაც სერვერი თავს კლავს
max-chained-neighbor-updates1000000Redstone ჯაჭვის ზღვარი, ამცირებს update suppression-ის ლაგს
sync-chunk-writestruechunk-ების ჩაწერის სინქრონული flush
use-native-transporttrueLinux epoll ქსელი. დატოვე ჩართული
region-file-compressiondeflate1.20.5 და შემდეგ. ასევე none და lz4
pause-when-empty-seconds601.21.2 და შემდეგ. ცარიელისას tick-ს აჩერებს
rate-limit0პაკეტები წამში გაგდებამდე. 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-modetrueყველა მოთამაშის შემოწმება Mojang-თან
white-listfalseშესვლა მხოლოდ სიაში მყოფებს შეუძლიათ
enforce-whitelistfalseსიაში არმყოფი, უკვე ონლაინ მყოფების გაგდება
enforce-secure-profiletrueხელმოწერილი ჩატის მოთხოვნა
prevent-proxy-connectionsfalseმოთამაშეების უარყოფა, რომელთა ISP არ ემთხვევა
accepts-transfersfalse1.20.5 და შემდეგ. transfer პაკეტების მიღება
op-permission-level4დონე, რომელსაც /op გასცემს
function-permission-level2დონე, რომლითაც function-ები და data pack-ები მუშაობს
broadcast-console-to-opstrueკონსოლის ბრძანებების ჩვენება ოპერატორებისთვის
broadcast-rcon-to-opstrueRCON ბრძანებების ჩვენება ოპერატორებისთვის
log-ipstrueმოთამაშეების მისამართების ჩაწერა ლოგში
hide-online-playersfalseმოთამაშეების ნიმუშის დამალვა სერვერების სიაში
enable-statustrueსაერთოდ უპასუხოს სერვერების სიის 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-queryfalseGameSpy4 query პროტოკოლზე პასუხი
query.port25565UDP პორტი query-სთვის
enable-rconfalseდისტანციური კონსოლის ჩართვა
rcon.port25575TCP პორტი RCON-ისთვის
rcon.passwordცარიელიაუცილებელია, თუ RCON ჩართულია
enable-jmx-monitoringfalseJVM მეტრიკების გამოქვეყნება 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-packfalseუარმთქმელი მოთამაშეების გათიშვა

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, რომელიც მუშაობს, ნაგულისხმევი მნიშვნელობების გარეშე, რომ გადაწყვეტილებები გამოჩნდეს:

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-ის გარეშე. ინახება მხოლოდ სახელი, ტექსტი და დრო - სხვა არაფერი. ბმულების რაოდენობა ლიმიტირებულია.

0/2000