Multiverse-Core ერთ Paper სერვერს აძლევს საშუალებას, რამდენი სამყაროც გინდა, იმდენი გაუშვას - survival სამყარო, შემოქმედებითი ბრტყელი სამყარო, რესურსების სამყარო, რომელიც ყოველთვიურად ახლდება - და მოთამაშეები მათ შორის ბრძანებით ან პორტალით გადაადგილდებიან. სამყაროს ქმნი /mv create <name> normal-ით, არსებულ საქაღალდეს აიმპორტებ /mv import <name> normal-ით, teleport-ს კი /mv tp <name>-ით აკეთებ. დანარჩენს სამი დამატება აკეთებს: Multiverse-Portals სამყაროებს შორის პორტალებისთვის, Multiverse-NetherPortals, რომ თითოეულ სამყაროს საკუთარი Nether ჰქონდეს, და Multiverse-Inventories, რომ შემოქმედებითი ნივთები survival-ში არ მოხვდეს. ყოველი დამატებითი სამყარო სერვერის ერთ მთავარ ნაკადს, მეხსიერებას და დისკს იზიარებს, ასე რომ, სამყაროები იაფია, როცა ცარიელი და გადმოტვირთულია, და ძვირი, როცა chunk-ებს ჩატვირთულს ინახავს. ცალკე თამაშის რეჟიმებისთვის საკუთარი plugin-ებითა და გადატვირთვებით, როგორც წესი, უკეთესი დიზაინია ცალკე სერვერები proxy-ის უკან.
რას აკეთებს Multiverse და რას არა#
Paper სერვერი ჩვეულებრივ ზუსტად სამ სამყაროს უშვებს: Overworld-ს level-name-იდან server.properties-ში, პლუს world_nether-ს და world_the_end-ს. Bukkit-ს ყოველთვის შეეძლო მეტი სამყაროს ჩატვირთვა მუშაობის დროს, მაგრამ მათ სამართავად არც ბრძანებები აქვს და არც კონფიგურაცია. Multiverse-Core სწორედ ეს მართვის ფენაა. ის:
- ქმნის ახალ სამყაროებს და აიმპორტებს არსებული სამყაროების საქაღალდეებს
- იმახსოვრებს, რომელი სამყაროები არსებობს, და მათ გაშვებისას ტვირთავს
- ინახავს თითოეული სამყაროს პარამეტრებს: თამაშის რეჟიმი, სირთულე, PvP, გაჩენა, spawn-ის წერტილი და სხვა
- გთავაზობს teleport-ის ბრძანებებს და დანიშნულების სინტაქსს, რომელსაც მისი დამატებები იზიარებენ
ის სამყაროებს დამოუკიდებელ სერვერებად არ აქცევს. ყოველი სამყარო ერთსა და იმავე პროცესში მუშაობს, რიგრიგობით ითვლება ერთსა და იმავე მთავარ ნაკადზე, იგივე plugin-ებით, მოთამაშეების იგივე სიითა და იგივე ჩატით. ლაგის მანქანა შემოქმედებით სამყაროში survival სამყაროსაც ანელებს. ეს ცენტრალური კომპრომისია, და ის ქვემოთ ყოველ სექციაში ბრუნდება.
Multiverse plugin-ია, ამიტომ მას Paper ან Bukkit-თან თავსებადი სხვა სერვერი სჭირდება. ის არ მუშაობს Fabric-ზე, NeoForge-ზე ან vanilla-ზე, და Folia-ზე მხარდაჭერილი არ არის. დააყენე jar-ი plugins/-ში, გადატვირთე, და ის საკუთარ საქაღალდეს ქმნის worlds.yml-ით, რომელიც ყველა მის მიერ მართულ სამყაროს ჩამოთვლის.
სამყაროების შექმნა, იმპორტი და წაშლა#
ბრძანებები, რომლებსაც ყველაზე ხშირად გამოიყენებ:
/mv create creative normal/mv create mining normal/mv create void_lobby normal/mv import oldsurvival normal/mv list/mv info creative/mv tp creative/mv unload mining/mv load mining/mv remove oldsurvival/mv delete mining/mv confirmმეორე არგუმენტი გარემოა: normal, nether ან the_end. ის განზომილების ტიპს წყვეტს - ცა, განათება, როგორ იქცევა საწოლები და respawn anchor-ები - და არა მხოლოდ რელიეფს.
არჩევითი flag-ები seed-ს, სამყაროს ტიპს და გენერატორს აყენებს. Multiverse-Core 4-ში ისინი ასე გამოიყურება:
/mv create flatland normal -t FLAT/mv create seeded normal -s 8675309/mv create custom normal -g Terra:OVERWORLDმე-5 ვერსია იგივე ინფორმაციას გადაკეთებული flag-ებით იღებს; /mv help create ზუსტ ფორმას აჩვენებს. plugin-ის გენერატორს, როგორიცაა Terra, ჯერ ამ plugin-ის დაყენება სჭირდება. სამყაროს საკუთარი გენერაცია გენერატორებსა და seed-ებს უფრო დეტალურად განიხილავს.
იმპორტი ის გზაა, რომლითაც სხვის მიერ შექმნილ სამყაროს შემოიტან - სათავგადასავლო რუკას, ძველ სეზონს, single-player-ის სამყაროს. ატვირთე საქაღალდე სერვერის ძირში world-ის გვერდით, მერე /mv import <foldername> normal. თუ სამყარო vanilla-დან ან single-player-იდან მოვიდა, მისი Nether და End მის შიგნითაა DIM-1-ად და DIM1-ად; Paper მათ ცალკე სამყაროებად არ გამოიყენებს, ამიტომ, თუ გჭირდება, ცალკე დააიმპორტე, ან ჯერ საკუთარ საქაღალდეებში გადაიტანე. Paper, Fabric თუ vanilla საქაღალდეების სტრუქტურის განსხვავებას ხსნის.
წაშლა ორი სიძლიერისაა. /mv remove Multiverse-ს სამყაროს მართვას უწყვეტს, მაგრამ ფაილებს დისკზე ტოვებს. /mv delete საქაღალდეს შლის, /mv confirm-ის შემდეგ. გაუქმება შეუძლებელია, ამიტომ ჯერ backup გააკეთე.
გადმოტვირთვა სამყაროს რეგისტრირებულს ტოვებს, მაგრამ მეხსიერების გარეთ. გადმოტვირთული სამყარო დისკის ადგილის გარდა არაფერი ჯდება, რაც მას სწორ მდგომარეობად აქცევს ძველი სეზონისთვის, რომლის შენახვაც გინდა.
თითოეული სამყაროს პარამეტრები#
თითოეულ სამყაროს საკუთარი პარამეტრები აქვს Multiverse-ის worlds.yml-ში - თამაშის რეჟიმი, სირთულე, ჩართულია თუ არა PvP, ჩნდებიან თუ არა ცხოველები და მონსტრები, spawn-ის ადგილი, დამალულია თუ არა /mv list-იდან, ჩვენებისთვის alias და სად ჩნდებიან მოთამაშეები, როცა იქ კვდებიან.
შეცვალე ისინი ბრძანებებით, ნაცვლად იმისა, რომ worlds.yml სერვერის მუშაობისას არედაქტირო. მე-4 ვერსიაში ფორმაა /mv modify set <property> <value> <world>:
/mv modify set gamemode creative creative/mv modify set pvp false creative/mv modify set difficulty peaceful creative/mv modify set monsters false creativeმე-5 ვერსია არგუმენტებს სხვანაირად ალაგებს; აქაც /mv help modify არის ავტორიტეტული. სამყაროს spawn-ის წერტილი დგება, როცა სასურველ ადგილას დგახარ და /mv setspawn-ს უშვებ.
Multiverse-ის გარეთ არსებული პარამეტრებიც თითოეულ სამყაროზეა, და დაბნეულობის უმეტესობა აქედან მოდის:
- game rule-ები. vanilla-ს
/gameruleმოქმედებს იმ სამყაროზე, სადაც გამგზავნი დგას. კონსოლიდან ის მთავარ სამყაროზე მოქმედებს. Multiverse საკუთარ gamerule ბრძანებას გთავაზობს, რომელიც სამყაროს სახელს იღებს, და ეს საიმედო გზაა წესების დასაყენებლად სამყაროზე, სადაც არავინაა. - Paper-ის პარამეტრები. Paper ყველა სამყაროსთვის კითხულობს
config/paper-world-defaults.yml-ს, მერე კი თითოეული სამყაროს საქაღალდის შიგნითpaper-world.yml-ს გადაფარვებისთვის. შემოქმედებითი სამყაროს view distance ან entity-ების ლიმიტები იქ ჩაწერე. - Spigot-ის პარამეტრები.
spigot.yml-ს აქვსworld-settingsსექციაdefaultჩანაწერით და არჩევითი ჩანაწერებით, რომლებსაც თითოეული სამყაროს სახელი ჰქვიათ. - server.properties მხოლოდ მთავარ სამყაროზე მოქმედებს.
level-seed,level-typeდაgenerate-structuresMultiverse-ის მიერ შექმნილი სამყაროებისთვის არაფერს ნიშნავს; თითოეული საკუთარ ოფციებს შექმნისას იღებს. - datapack-ები მთავარი სამყაროს
datapacks/საქაღალდიდან იტვირთება და მთელ სერვერზე მოქმედებს.
პორტალები და nether-ის კავშირები#
მოთამაშეებს სამყაროებს შორის გზა სჭირდებათ, რომელიც ბრძანება არ არის. ამას დამატებები აგვარებს.
Multiverse-Portals ნებისმიერი ფორმის პორტალებს ქმნის. მონიშნე უბანი პორტალის ჯადოსნური ჯოხით (ან WorldEdit-ის მონიშვნით, თუ WorldEdit დაყენებულია), მერე კი შექმენი პორტალი დანიშნულებით:
/mvp wand/mvp create to_creative w:creative/mvp create to_hub w:worldდანიშნულებები პრეფიქსის სინტაქსს იყენებს, რომელიც Multiverse-ის დამატებებს შორის საერთოა: w:<world> სამყაროს spawn-ისთვის, p:<portal> სხვა პორტალისთვის და e:<world>:<x>,<y>,<z> ზუსტი კოორდინატებისთვის. ორი პორტალი, რომლებიც p:-ით ერთმანეთზე მიუთითებენ, კონკრეტულ ადგილებს შორის ორმხრივ კავშირს გაძლევს, და hub სამყაროების უმეტესობა ასე შენდება.
Multiverse-NetherPortals წყვეტს, სად მიდის nether-ისა და end-ის პორტალები. ნაგულისხმევად ის სახელების წესს მიჰყვება: სამყაროს, სახელად survival2, Nether-ის პორტალები survival2_nether-ში მიდის, End-ის პორტალები კი survival2_the_end-ში, თუ ეს სამყაროები არსებობს. შექმენი ისინი შესაბამისი გარემოთი:
/mv create survival2 normal/mv create survival2_nether nether/mv create survival2_the_end the_endყველაფრისთვის, რაც სახელების შაბლონს არ მიჰყვება, დააკავშირე სამყაროები პირდაპირ /mvnp link nether <from> <to>-ით და /mvnp link end <from> <to>-ით. NetherPortals-ის გარეშე სერვერზე ყოველი nether-ის პორტალი მთავარ world_nether-ში მიდის, რაც კლასიკური სიურპრიზია სერვერზე ორი survival სამყაროთი.
End-ს დამატებითი ნიუანსი აქვს: დრაკონთან ბრძოლა და გასასვლელი პორტალი თავად End სამყაროს ეკუთვნის, ასე რომ, მეორე End მეორე დრაკონია. ეს, როგორც წესი, ისაა, რაც მეორე survival სამყაროსთვის გინდა, და არა ის, რაც რესურსების სამყაროსთვის გინდა.
ცალკე ინვენტარები თითოეულ სამყაროში#
Multiverse-Inventories-ის გარეშე მოთამაშის ინვენტარი მას ყველგან მიჰყვება. შემოქმედებითი სამყაროდან survival-ში გადასვლისას მას beacon-ების დასტა მოაქვს. დამატება ამას სამყაროების დაჯგუფებით აგვარებს: ერთ ჯგუფში მყოფი სამყაროები ინვენტარებს იზიარებენ, სხვადასხვა ჯგუფში მყოფები - არა.
ტიპური სტრუქტურა:
| ჯგუფი | სამყაროები | საერთო |
|---|---|---|
| survival | world, world_nether, world_the_end | ყველაფერი |
| creative | creative | ყველაფერი, survival-ისგან ცალკე |
| resources | mining, mining_nether | survival-თან საერთო, თუ გინდა, რომ შეგროვებული ნივთები სახლში მოვიდეს |
რას იზიარებს ჯგუფი, კონფიგურირებადია - ინვენტარი, ender chest, სიცოცხლე, შიმშილი, გამოცდილება, წამლის ეფექტები, საწოლის spawn და სხვა - ასე რომ, შეგიძლია, მაგალითად, გამოცდილება ყველგან გააზიარო, ინვენტარები კი ცალკე დატოვო. ჯგუფები plugin-ის groups.yml-ში ან მისი ბრძანებებით განისაზღვრება; plugin-ის დოკუმენტაცია შენი ვერსიისთვის გაზიარებების სახელებს ჩამოთვლის.
ორი რჩევა. ჯგუფები მანამდე დააყენე, სანამ მოთამაშეები სამყაროებს შორის გადაადგილებას დაიწყებენ; საერთო ინვენტარის მოგვიანებით გაყოფა ნიშნავს გადაწყვეტას, რომელი ასლი იმარჯვებს. და საზღვარი შეგნებულად გატესტე: ჩადე ნივთი ინვენტარში, გაიარე ყოველი პორტალი და შეამოწმე, სად აღმოჩნდება. კონფიგურაციაში ხარვეზი ის გზაა, რომლითაც სერვერი აღმოაჩენს, რომ შემოქმედებით ნივთებს End-ის გავლით survival-ში მოხვედრა შეუძლიათ.
რა ჯდება თითოეული დამატებითი სამყარო#
სამყაროს ფასი დამოკიდებულია იმაზე, რამდენია მისგან ჩატვირთული, და არა იმაზე, რამდენად დიდია დისკზე.
tick. ყოველი ჩატვირთული სამყარო ყოველ სერვერის tick-ზე ერთხელ ითვლება, რიგრიგობით, მთავარ ნაკადზე. სამყარო მოთამაშეების და ჩატვირთული chunk-ების გარეშე თითქმის დროს არ იღებს. სამყარო ჩატვირთული chunk-ებით - რადგან მოთამაშეები იქ არიან, რადგან spawn-ის chunk-ები ჩატვირთული რჩება, ან რადგან farm-ი ან chunk loader მათ ჩატვირთულს ინახავს - ითვლება ისე, როგორც ნებისმიერი სხვა უბანი, და მისი tick-ის დრო ყველაფერ დანარჩენს ემატება. ათი დატვირთული სამყარო ერთ სერვერზე ერთი მთავარი ნაკადია, რომელიც ათი სამყაროს სამუშაოს აკეთებს. რატომ ეცემა TPS და რა ვქნათ ზოგად სურათს შეიცავს.
spawn-ის chunk-ები. ისტორიულად ყოველი სამყარო spawn-ის ირგვლივ chunk-ების ბლოკს მუდმივად ჩატვირთულს ინახავდა. Minecraft 1.20.5-დან ამ უბანს spawnChunkRadius game rule აყენებს, ნაგულისხმევად 2; მისი 0-ზე დაყენება სამყაროებში, რომლებსაც ეს არ სჭირდებათ, ნიშნავს, რომ ცარიელი სამყარო არაფერს ინახავს ჩატვირთულს. ძველ ვერსიებზე Multiverse-ს აქვს თითოეული სამყაროს პარამეტრი, რომ spawn მეხსიერებაში აღარ შეინახოს. რამდენიმე სამყაროიანი სერვერისთვის ეს ერთადერთი ყველაზე ეფექტური პარამეტრია.
/mv tp mining/gamerule spawnChunkRadius 0გაუშვი ის, როცა იმ სამყაროში დგახარ, რომლის შეცვლაც გინდა, როგორც ზემოთაა, ან გამოიყენე Multiverse-ის საკუთარი gamerule ბრძანება, რომელიც სამყაროს სახელს იღებს და კონსოლიდან მუშაობს.
მეხსიერება. ყოველი ჩატვირთული სამყარო საკუთარ ჩატვირთულ chunk-ებს, entity-ებს და განათების მონაცემებს ინახავს. ცარიელი სამყაროები, სადაც არაფერია ჩატვირთული, პატარაა; სამყაროები მოთამაშეებით მეხსიერებას view distance-ისა და აქტივობის პროპორციულად ამატებს. სამყაროების დამატების შემდეგ მეხსიერების გრაფიკს თვალი ადევნე, ზოგადი ზომის შერჩევისთვის კი იხილე რამდენი RAM სჭირდება Minecraft სერვერს.
დისკი და backup-ები. ყოველი სამყაროს დაგენერირებული chunk-ები დისკზეა. რესურსების სამყარო, რომელსაც ყოველთვიურად ინტენსიურად იკვლევენ და არასოდეს ახლდება, უსასრულოდ იზრდება. ყოველი სამყარო ასევე შენი backup-ების ნაწილია, რომლებიც სამყაროების დამატებასთან ერთად უფრო დიდხანს გრძელდება და მეტ ადგილს იკავებს. RE:NODE-ზე Minecraft-ის გეგმებს 15-დან 100 GB-მდე დისკი და backup-ის ორი სლოტი აქვს; დისკის გრაფიკი კონსოლის გვერდით აჩვენებს, როდის იწყებენ სამყაროები გეგმის გადავსებას.
autosave. ყოველი სამყარო საკუთარ შეცვლილ chunk-ებს ინახავს. ბევრი დატვირთული სამყარო autosave-ების დროს მეტ ჩაწერის სამუშაოს ნიშნავს, რაც დიდ სერვერზე პერიოდულ შეფერხებად ვლინდება.
რესურსების სამყარო, რომელიც ახლდება#
Multiverse-ის დაყენების გავრცელებული მიზეზია სამთო სამყარო, რომელიც განრიგით ახლდება, რომ მთავარი სამყარო უნაწიბუროდ დარჩეს. შაბლონი:
- შექმენი:
/mv create resources normal. დააყენეspawnChunkRadius0-ზე და სამყაროს საზღვარი, რომ კვლევას ზღვარი ჰქონდეს. - დააკავშირე ის hub-იდან Multiverse-Portals-ის პორტალით და Multiverse-Inventories-ში გადაწყვიტე, მოდის თუ არა ნივთები სახლში.
- მის განსაახლებლად წაშალე და ხელახლა შექმენი, როცა შიგნით არავინაა, ან გამოიყენე Multiverse-ის regenerate ბრძანება, სადაც შენი ვერსია მას გთავაზობს. განახლება წინასწარ გამოაცხადე - ყველა, ვინც მასში დგას წაშლისას, მთავარი სამყაროს spawn-ზე გადადის.
- ახალი სამყარო მისი საზღვრის შიგნით წინასწარ დააგენერირე, როგორც კი იარსებებს, რომ განახლების შემდეგ პირველი საათი ლაგის ნახტომი არ იყოს. სამყაროს საზღვრები და pre-generation Chunky-ის ბრძანებებს შეიცავს.
რამდენჯერმე ხელით გაუშვი განახლება და ჩაიწერე ბრძანებების ზუსტი თანმიმდევრობა შენი Multiverse-ის ვერსიისთვის, დადასტურების ნებისმიერი ნაბიჯის ჩათვლით. მერე ავტომატიზაცია გაუკეთე. RE:NODE-ზე Schedules ჩანართი კონსოლის დალაგებულ ბრძანებებს დაყოვნებებით cron გამოსახულებით უშვებს - განცხადება, ლოდინი, განახლების ბრძანებები, pre-generation-ის დაწყება - ასე რომ, თვის პირველი რიცხვის განახლება შეიძლება მოხდეს ისე, რომ ონლაინ არავინ იყოს. იმავე განრიგში წინასწარ backup გააკეთე.
Multiverse თუ proxy-ქსელი#
Multiverse რამდენიმე სამყაროს ერთ სერვერში აერთიანებს. proxy, როგორიცაა Velocity, რამდენიმე სერვერს ერთი მისამართის უკან აყენებს. ისინი ერთმანეთზე გადამფარავ პრობლემებს სხვადასხვა კომპრომისით წყვეტენ:
| Multiverse-ის სამყაროები | სერვერები proxy-ის უკან | |
|---|---|---|
| მთავარი ნაკადი | ყველა სამყაროს საერთო | თითო სერვერზე ერთი |
| plugin-ები | ყველგან იგივე ნაკრები | თითოეულ სერვერზე სხვადასხვა ნაკრები |
| გადატვირთვები | ყველაფერი ერთად გადაიტვირთება | თითოეული სერვერი ცალკე გადაიტვირთება |
| ჩატი და მოთამაშეების სია | ავტომატურად საერთოა | დასაკავშირებლად plugin-ი სჭირდება |
| ინვენტარები | საერთოა, თუ არ გაყოფ | ცალკეა, თუ არ დაასინქრონებ |
| ფასი | ერთი გეგმა | ერთი გეგმა ან გამოყოფა თითო სერვერზე |
გამოიყენე Multiverse სამყაროებისთვის, რომლებიც ერთსა და იმავე თამაშს ეკუთვნის: survival სამყარო რესურსების სამყაროთი, შემოქმედებითი ნაკვეთების სამყარო, spawn-ის hub. გამოიყენე proxy, როცა "სამყაროები" სინამდვილეში სხვადასხვა თამაშია - minigame სერვერი, mod-იანი სერვერი, ღონისძიების სამყარო სავსე plugin-ებით, რომელთა survival-ის გვერდით გაშვებაც არ გინდა. Velocity-ის ქსელის აწყობა proxy-ის მხარეს განიხილავს.
FAQ#
მუშაობს Multiverse-Core Fabric-ზე ან NeoForge-ზე?
არა. Multiverse Bukkit-ის plugin-ია და Paper-ს ან Bukkit-თან თავსებად სხვა სერვერს საჭიროებს. Fabric-სა და NeoForge-ს დამატებითი განზომილებებისთვის საკუთარი mod-ები აქვთ, რომლებიც სხვანაირად მუშაობს და, როგორც წესი, კლიენტზეც უნდა იყოს.
რატომ მიდის ჩემი მეორე სამყაროს nether-ის პორტალები მთავარ Nether-ში?
Multiverse-NetherPortals-ის გარეშე ყოველი nether-ის პორტალი world_nether-ში მიდის. დააყენე NetherPortals და ან სამყაროებს მისი წესით დაარქვი სახელები (name_nether, name_the_end), ან პირდაპირ დააკავშირე /mvnp link-ით.
იწვევს ცარიელი სამყაროები ლაგს?
ძალიან ცოტას, თუ მათ ჩატვირთული chunk-ები არ აქვთ. სამყარო spawn-ის ირგვლივ chunk-ებს ჩატვირთულს ინახავს, თუ ამას არ გამორთავ; 1.20.5-ზე და შემდეგ დააყენე spawnChunkRadius game rule 0-ზე სამყაროებში, რომლებსაც ეს არ სჭირდებათ, და გადმოტვირთე სამყაროები, რომლებსაც არავინ იყენებს.
როგორ ავუკრძალო შემოქმედებით ნივთებს survival-ში მოხვედრა?
დააყენე Multiverse-Inventories და შემოქმედებითი სამყარო ცალკე ჯგუფში ჩასვი, survival სამყაროებისგან ცალკე. მერე გატესტე მათ შორის ყოველი გზა - პორტალები, ბრძანებები, End - ინვენტარში ნივთით.
შემიძლია single-player-ის სამყარო Multiverse-ით დავაიმპორტო?
კი. ატვირთე სამყაროს საქაღალდე სერვერის ძირში და გაუშვი /mv import <foldername> normal. მისი Nether და End საქაღალდის შიგნით vanilla-ს სტრუქტურით ინახება, ასე რომ, თუ Paper-ზე გჭირდება, ცალკე დააიმპორტე.




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