Minecraft სერვერის სამართავად საჭირო ბრძანებების უმეტესობა დაახლოებით ოცია, და სერვერის კონსოლში ისინი ჩატისგან ოდნავ განსხვავებულად იქცევა: წინ დახრილი ხაზი არ გჭირდება, მოთამაშის პოზიცია არ არსებობს, და უფლების დონე ყოველთვის მაქსიმალურია. ეს არის ცნობარი ამ ოცისთვის, ასევე target selector-ებისთვის, რომლებიც ერთ ბრძანებას ასად აქცევს, execute სინტაქსისთვის, რომელზეც ყველაფერი თანამედროვე დგას, და gamerule-ებისთვის მათი რეალური ნაგულისხმევი მნიშვნელობებით. ის ეხება vanilla სერვერსა და Paper-ს, რომელზეც RE:NODE-ის Minecraft ხაზი მუშაობს; სადაც Paper რაიმე სასარგებლოს ამატებს, ეს მითითებულია.
კონსოლი ჩატის ველი არ არის#
პანელის კონსოლი სერვერის პროცესის standard input-ია. რასაც აკრიფებ, ბრძანებად პირდაპირ გადაეცემა სერვერს, ამიტომ წინა /, რომელსაც მოთამაშე ჩატში აკრეფს, საჭირო არ არის და უმეტეს build-ზე შეცდომაა. დაწერე list და არა /list.
აქედან კიდევ სამი რამ გამომდინარეობს:
- კონსოლს აქვს უფლების დონე 4 და მისი დაწევა შეუძლებელია. ის მოთამაშე არ არის, ამიტომ plugin-ების უფლებები მასზე არც ვრცელდება. რასაც LuckPerms ჯგუფი კრძალავს, კონსოლს მაინც შეუძლია. ამიტომ ის არის გზა უკან, როცა საკუთარ permission ხეს ჩაიკეტავ - იხილე LuckPerms-ის გზამკვლევი ხისთვის, რომელიც იქ მიგიყვანს.
- კონსოლს აქვს პოზიცია და ის შენი არ არის. კონსოლიდან ბრძანებები სრულდება overworld-ის spawn წერტილში. ამიტომ
@pნიშნავს "spawn-თან უახლოეს მოთამაშეს" და არა "ჩემთან უახლოეს", ხოლო@sარასწორია, რადგან კონსოლი entity არ არის. დაასახელე მოთამაშე, ან გამოიყენეexecute as @a at @s run .... - ბრძანების გამოტანა კონსოლის გამოტანაა. შეცდომები იმავე ნაკადში ჩანს, სადაც ყველაფერი დანარჩენი, ამიტომ ჩავარდნილი ბრძანება plugin-ების ფონურ ხმაურში გადაიკარგება. კონსოლის კითხვა განმარტავს, როგორ გაფილტრო ეს.
როცა ბრძანება არასწორია, სერვერი შენს შეყვანას უკან ბეჭდავს და მარკერით აჩვენებს, სად შეჩერდა:
Unknown or incomplete command, see below for errorgamemode creativ<--[HERE]ეს მარკერი ზუსტია. თუ ის მოთამაშის სახელზე მიუთითებს, მოთამაშე ონლაინ არ არის ან სახელი არასწორადაა დაწერილი; თუ სივრცეზე მიუთითებს სრულად გამოიყურებადი ბრძანების შემდეგ, არგუმენტი აკლია.
ოპერატორის დონეები და ვის რა შეუძლია#
op <player> ნაგულისხმევად დონე 4-ს იძლევა, ანუ ყველაფერს. დონეები ისე არსებობს, ინახება თითო ოპერატორზე და ღირს გამოყენებად.
| დონე | რას იძლევა |
|---|---|
| 1 | spawn-ის დაცვის გვერდის ავლა |
| 2 | Cheat ბრძანებები: gamemode, give, tp, setblock, summon, effect, command block-ები |
| 3 | მოთამაშეების მართვა: kick, ban, pardon, op, deop, whitelist |
| 4 | სერვერის მართვა: stop, save-all, save-off, save-on |
ოპერატორები ინახება ops.json-ში სერვერის root-ში, და დონე იქვე შეგიძლია პირდაპირ შეცვალო გაჩერებულ სერვერზე:
[ { "uuid": "069a79f4-44e9-4726-a5be-fca90e38aaf5", "name": "Notch", "level": 3, "bypassesPlayerLimit": false }]ნაგულისხმევებს ორი server.properties გასაღები აკონტროლებს: op-permission-level (ნაგულისხმევი 4) არის დონე, რომელსაც /op გასცემს, და function-permission-level (ნაგულისხმევი 2) არის დონე, რომლითაც datapack ფუნქციები და command block-ები სრულდება. enable-command-block ნაგულისხმევად false-ია, და ასე დატოვება გონივრული უსაფრთხოების გადაწყვეტილებაა საჯარო სერვერზე, რადგან command block არის დონე 2-ის ბრძანებების შემსრულებელი, რომლის დადებაც ნებისმიერ მშენებელს შეუძლია სათანადო უფლებით. ამ ფაილის ყველა გასაღები განხილულია server.properties ახსნილში.
plugin-ებიან სერვერზე ოპერატორის სტატუსი უხეში ინსტრუმენტია, რომელიც plugin-ების permission შემოწმებებსაც უვლის გვერდს. შაბლონი, რომელიც მუშაობს, ასეთია: ყველას წაართვი op და მიეცი minecraft.command.<name> node-ები - minecraft.command.gamemode, minecraft.command.time და ა.შ. - რაც ზუსტად ის დეტალურობაა, რასაც ოპერატორის დონეები არ იძლევა.
ბრძანებები, რომლებსაც რეალურად გამოიყენებ#
| ბრძანება | შენიშვნები |
|---|---|
list | ვინ არის ონლაინ. list uuids UUID-ებსაც ამატებს |
kick <player> [reason] | მიზეზი ჩანს მათ გათიშვის ეკრანზე |
ban <player> [reason], pardon <player> | წერს banned-players.json-ს |
ban-ip <address>, pardon-ip <address> | წერს banned-ips.json-ს |
banlist players, banlist ips | ბეჭდავს სიებს |
whitelist on/off/add/remove/list/reload | ძალაში შესასვლელად white-list=true-ც სჭირდება |
op <player>, deop <player> | |
say <message> | გადაიცემა სერვერის სახელით |
tell <player> <message> | პირადი. msg და w მისი ალიასებია |
tellraw <targets> <component> | ფორმატირებული ტექსტის გაგზავნის ერთადერთი გზა |
gamemode <mode> [targets] | survival, creative, adventure, spectator |
defaultgamemode <mode> | ვრცელდება პირველად შემოსულ მოთამაშეებზე |
difficulty <level> | peaceful, easy, normal, hard |
time set day/noon/night/midnight | ან tick-ის ნომერი. time add 1000 |
weather clear/rain/thunder [seconds] | ხანგრძლივობის გარეშე შემთხვევითია |
seed | სამყაროს seed |
setworldspawn [x y z] | სად ჩნდებიან ახალი მოთამაშეები |
worldborder set <blocks> [seconds] | დროთა განმავლობაში იკუმშება ან იზრდება |
setidletimeout <minutes> | გამოყავს უმოქმედო მოთამაშეები. 0 თიშავს |
kill @e[type=item] | გასუფთავებს დაგდებულ ნივთებს ჩატვირთულ chunk-ებში |
save-all flush, save-off, save-on | იხილე შენახვის თავი ქვემოთ |
stop | ერთადერთი სუფთა გამორთვა |
კიდევ რამდენიმე ღირს იმის ცოდნად, რომ არსებობს: spreadplayers ჯგუფს შემთხვევით არჩეულ რადიუსში ფანტავს, forceload add chunk-ს მოთამაშის გარეშე ჩატვირთულს ინახავს, datapack list/enable/disable datapack-ებს runtime-ზე მართავს (დეტალები datapack-ების გზამკვლევშია), ხოლო transfer <host> [port] 1.20.5-სა და შემდეგ ვერსიებზე კლიენტს სხვა სერვერზე გადაიყვანს თამაშიდან გამოსვლის გარეშე. 1.20.3-სა და შემდეგ ვერსიებზე tick freeze, tick step და tick rate <n> თავად tick ციკლს აკონტროლებს, ეს debugging ხელსაწყოა და არა რაღაც, რაც ჩართული უნდა დატოვო.
Target selector-ები#
selector მოთამაშის სახელს ანაცვლებს და ნულ ან მეტ სამიზნედ ფართოვდება.
| Selector | ნიშნავს |
|---|---|
@p | უახლოესი მოთამაშე |
@a | ყველა მოთამაშე, spectator-ებისა და ზღვრული შემთხვევების ჩათვლით |
@r | ერთი შემთხვევითი მოთამაშე |
@e | ყველა entity, მოთამაშეების ჩათვლით |
@s | შემსრულებელი. კონსოლიდან არასოდეს სწორია |
@n | ნებისმიერი ტიპის უახლოესი entity, დაემატა 1.21-ში |
არგუმენტები კვადრატულ ფრჩხილებში იწერება, მძიმით გაყოფილი, და ისინი თანმიმდევრობით გამოყენებული ფილტრებია:
$ kill @e[type=minecraft:zombie,distance=..100]$ gamemode adventure @a[gamemode=survival]$ tp @a[tag=lobby] 0 70 0$ give @a[limit=1,sort=nearest,distance=..20] minecraft:bread 16$ effect give @a[scores={deaths=5..}] minecraft:weakness 60 0| არგუმენტი | მაგალითი | მნიშვნელობა |
|---|---|---|
type | type=minecraft:creeper | Entity-ის ტიპი. type=!player გამოსაკლებად |
distance | distance=..64, distance=10.. | დიაპაზონი ბლოკებში შესრულების წერტილიდან |
limit, sort | limit=3,sort=nearest | რაოდენობის ზღვარი და დალაგება |
tag | tag=vip, tag=!afk | Scoreboard tag-ები, დაყენებული tag add-ით |
team | team=red | |
scores | scores={kills=10..} | Objective-ების დიაპაზონები |
gamemode | gamemode=!creative | |
level | level=30.. | გამოცდილების დონე, მხოლოდ მოთამაშეებისთვის |
name | name=Steve | ზუსტი დამთხვევა |
nbt | nbt={Invulnerable:1b} | ნელია. ჯერ type-ით გაფილტრე |
x,y,z,dx,dy,dz | x=0,y=64,z=0,dx=32 | ყუთია და არა სფერო |
დიაპაზონები ..-ს იყენებს და ჩართულია ბოლოებიც: 1..5 ერთიდან ხუთამდეა, ..64 64-ამდეა, 10.. ათი და მეტია. ! უარყოფს არგუმენტების უმეტესობას, და ზოგი არგუმენტი შეიძლება რამდენჯერმე გამოჩნდეს AND-ისთვის (tag=a,tag=b), ხოლო type და gamemode განმეორდება მხოლოდ უარყოფის შემთხვევაში.
კოორდინატები სამი ფორმისაა. აბსოლუტური (100 64 -200), შესრულების წერტილთან მიმართებითი (~ ~5 ~, ხუთი ბლოკი ზემოთ) და შემსრულებლის მიმართულებაზე ლოკალური (^ ^ ^5, ხუთი ბლოკი წინ). ლოკალურ კოორდინატებს სჭირდება entity, რომელიც რამეს უყურებს, ამიტომ კონსოლიდან ისინი არაფრის მაქნისია.
execute: ბრძანება, რომელიც სხვა ბრძანებებს უშვებს#
execute ცვლის, ვინ ასრულებს ბრძანებას, სად სრულდება და სრულდება თუ არა საერთოდ. თანამედროვე Minecraft-ის ადმინისტრირება უმეტესად ამ ერთი ბრძანებაა, და ის ჯაჭვდება: თითოეული clause კონტექსტს შემდეგისთვის ცვლის.
$ execute as @a at @s run playsound minecraft:entity.experience_orb.pickup master @s$ execute in minecraft:the_nether run kill @e[type=item]$ execute as @a[gamemode=survival] at @s if block ~ ~-1 ~ minecraft:magma_block run effect give @s minecraft:fire_resistance 10 0 true$ execute store result score Steve health run data get entity Steve Healthclause-ები, რომლებიც ღირს სწავლად:
as <targets>ცვლის შემსრულებელს, ამიტომ ბრძანების დანარჩენში@sთითოეულს მორიგეობით ნიშნავს. ის შესრულების წერტილს არ ამოძრავებს.at <targets>შესრულების წერტილს მათზე გადააქვს.as @a at @sწყვილია, რომელიც თითქმის ყოველთვის გინდა: გაუშვი ეს თითო მოთამაშეზე ერთხელ, იმ მოთამაშის ადგილას.positioned,rotated,facing,align,anchoredწერტილს დახვეწენ.in <dimension>გადადისminecraft:overworld-ზე,minecraft:the_nether-ზე ანminecraft:the_end-ზე.ifდაunlessპირობას ამოწმებს და ჯაჭვს აჩერებს, თუ ის ჩავარდა:if block,if blocks,if entity,if score,if data,if predicate,if dimension,if loaded,if biome.store result|successბრძანების რიცხვით შედეგს წერს score-ში, entity-ის NBT-ში, ბლოკში, bossbar-ში ან data storage-ში.runყოველთვის ბოლოა და იღებს შესასრულებელ ბრძანებას.
რადგან as @a იმეორებს, ერთი execute შეიძლება ძვირი იყოს. execute as @a at @s run fill ~-50 ~-50 ~-50 ~50 ~50 ~50 air დატვირთულ სერვერზე მის გაყინვის კარგი გზაა.
Gamerule-ები, რომლებიც ღირს შეცვლად#
gamerule მნიშვნელობის გარეშე მიმდინარე პარამეტრს ბეჭდავს. მნიშვნელობები სამყაროში ინახება და არა server.properties-ში, ამიტომ ისინი სერვერის jar-ის ხელახლა დაყენებას გადაურჩება და ახალ სამყაროს არა.
| Gamerule | ნაგულისხმევი | რას აკეთებს |
|---|---|---|
keepInventory | false | სიკვდილისას ნივთების შენარჩუნება |
doDaylightCycle | true | დრო მიდის |
doWeatherCycle | true | ამინდი თავისით იცვლება |
doFireTick | true | ცეცხლი ვრცელდება. მშენებლობის სერვერზე დააყენე false |
mobGriefing | true | Creeper-ები, enderman-ები და wither-ები ბლოკებს ცვლიან |
doMobSpawning | true | ბუნებრივი spawn საერთოდ |
doInsomnia | true | Phantom-ები |
doPatrolSpawning | true | Pillager-ების პატრულები |
doTraderSpawning | true | მოხეტიალე ვაჭრები |
randomTickSpeed | 3 | მოსავლის ზრდა და ბლოკების გაფუჭება. გაზრდა CPU-ს ხარჯავს |
maxEntityCramming | 24 | ერთ ბლოკში entity-ების რაოდენობა ზიანამდე. 0 თიშავს |
playersSleepingPercentage | 100 | ღამის გამოსატოვებლად საჭირო პროცენტი |
announceAdvancements | true | მიღწევების შეტყობინებები ჩატში |
showDeathMessages | true | |
sendCommandFeedback | true | ბრძანებების უკუკავშირი ჩატში |
commandBlockOutput | true | Command block-ის გამოტანა op-ებისთვის. სპამის დროს გამორთე |
logAdminCommands | true | ადმინის ბრძანებები იწერება ლოგში |
spawnRadius | 10 | გავრცელება სამყაროს spawn-ის გარშემო |
naturalRegeneration | true | ჯანმრთელობა საკვებიდან აღდგება |
reducedDebugInfo | false | F3-ში კოორდინატებს მალავს |
disableRaids | false | |
spectatorsGenerateChunks | true | დააყენე false, რომ spectator-მა ახალი რელიეფი ვერ ჩატვირთოს |
უფრო ახალი ვერსიები მეტს ამატებს, და ზემოთ ჩამოთვლილთაგან რამდენიმე 1.19-ში ან მოგვიანებით გამოჩნდა, ამიტომ შენს სერვერზე gamerule tab completion-ით შენი ვერსიის საბოლოო სიაა.
ამათგან სამს რეალური წარმადობის მხარე აქვს. randomTickSpeed chunk-ზე tick-ში შესასრულებელ სამუშაოს ამრავლებს, და ხალხი მას უფრო სწრაფი ფერმებისთვის ზრდის, შემდგომ TPS-ის ვარდნას კი არ უკავშირებს. maxEntityCramming 0-ზე აქრობს ერთადერთ რამეს, რაც mob ფერმას ათასობით entity-ის ერთ ბლოკში დაწყობას უშლის. ხოლო spectatorsGenerateChunks false-ზე spectator-ს აჩერებს, რომ გამოუკვლეველ რელიეფზე გაფრინდეს და chunk-ები შექმნას, რომლებსაც სერვერი მერე უნდა ინახავდეს. თუ უკვე lag-ს მისდევ, რატომ ეცემა TPS და რა ვქნათ ამის უფრო ფართო ვერსიაა.
Paper-ის საკუთარი ბრძანებები#
Paper და Spigot რამდენიმეს ამატებენ, რაც vanilla-ში არ არის, და სწორედ ისინი გჭირდება, როცა რაღაც არასწორადაა.
tpsბეჭდავს tick-ის სიჩქარეს ბოლო ერთი, ხუთი და თხუთმეტი წუთის განმავლობაში. ოცი მაქსიმუმია; დაახლოებით 19-ზე დაბალი შესამჩნევია.msptბეჭდავს, რამდენ ხანს გრძელდება tick სინამდვილეში, საშუალოდ და უარეს შემთხვევაში. ეს უფრო პატიოსანი რიცხვია, რადგან TPS 20-ზეა შეზღუდული, რამდენიც არ უნდა იყოს დარჩენილი სივრცე. 50 ms-ზე ნაკლები ნიშნავს, რომ სერვერს მარაგი აქვს.plugins(ანpl) ჩამოთვლის plugin-ებს, მწვანე ნიშნავს ჩართულს.version <plugin>ზუსტ build-ს იძლევა.paper entity listთითო სამყაროზე თითო ტიპის entity-ებს ითვლის, ხოლოpaper mobcapsაჩვენებს, თითოეული კატეგორია spawn ლიმიტს რამდენად უახლოვდება. ორივე პასუხობს კითხვას "რა არის ამ სერვერზე, რაც არ უნდა იყოს".paper heapმეხსიერების გამოყენებას ბეჭდავს კლასების მიხედვით, ხოლოpaper dumppluginsწერს JSON აღწერას ყველა ჩატვირთული plugin-ისა.spark profiler startდაspark profiler stopგაზიარებად profile-ს ქმნის. Timings Paper 1.21-ში ამოიღეს და spark მისი ჩამნაცვლებელია; Paper-ის ახალი build-ები მას შეიცავს. გამოტანის კითხვა ცალკე თემაა, განხილულია lag-ის დიაგნოსტიკაში spark-ით.
ერთი Bukkit დეტალი, რომელიც კამათს გიშველის: plugin-ებს შეუძლიათ vanilla ბრძანების სახელით ბრძანება დაარეგისტრირონ, და plugin იმარჯვებს. namespace-ის პრეფიქსი ორიგინალს აიძულებს - minecraft:tp ყოველთვის vanilla teleport-ია, რაც არ უნდა გაუკეთოს EssentialsX-მა /tp-ს. ალიასები commands.yml-შია სერვერის root-ში, თუ გინდა სამუდამოდ შეცვალო, რომელი იმარჯვებს.
შენახვა, გამორთვა და backup-ები#
სამყარო მეხსიერებაში ინახება და პერიოდულად იწერება. რაც პროცესს შენახვის გარეშე დაასრულებს, მეხსიერებაში მყოფს გადაყრის, ამიტომ ამ ოთხ ბრძანებას მათ სიგრძეზე მეტი მნიშვნელობა აქვს.
$ save-off$ save-all flush... copy the world folder ...$ save-onsave-off ავტომატურ შენახვას აჩერებს და სერვერს ჩაწერების შეკავებას ეუბნება; save-all flush ყველაფერს დისკზე აიძულებს და ელოდება, მყისიერად დაბრუნების ნაცვლად; save-on აღადგენს. ეს თანმიმდევრობა შენ თანმიმდევრულ ასლს გაძლევს. save-on-ის დავიწყება კლასიკური შეცდომაა: სერვერი მუშაობს და აღარასოდეს წერს, სანამ არ გადაიტვირთება, და მერე ერთბაშად ბევრს წერს.
stop ერთადერთი სუფთა გამორთვაა. ის ყველა სამყაროს ინახავს, მოთამაშეებს სათანადო შეტყობინებით გამოჰყავს და plugin-ებს საკუთარი მონაცემების ჩაწერის საშუალებას აძლევს - ეს მნიშვნელოვანია, რადგან ეკონომიკის plugin, რომელიც გამორთვისას წერს, ბალანსებს დაკარგავს, თუ პროცესს მოკლავ.
RE:NODE-ზე Stop და Restart ღილაკები სწორედ ამ სუფთა stop-ს აგზავნის. Schedules ჩანართი cron გამოსახულებით დაგეგმილ დავალებებს დაყოვნებებით ასრულებს, რაც საკმარისია უსაფრთხო backup ფანჯრის ასაგებად: console command დავალება save-off-ით, შემდეგ save-all flush, მოკლე დაყოვნება, backup დავალება, შემდეგ console command, რომელიც save-on-ს უშვებს. Backup სლოტები ყველა გეგმაზეა, backup-ები იმ მანქანის გარეთ ინახება, რომელსაც იცავს, და აღდგენა ღილაკია. ამ წინადადების მეორე ნახევარი მნიშვნელოვანია - backup, რომელიც არავის აღუდგენია, ჰიპოთეზაა, რასაც backup-ები, რომლებიც ნამდვილად აღდგება სათანადოდ განიხილავს.
ერთი ქცევა, რომელიც უნდა იცოდე: თუ სერვერი მეხსიერების ლიმიტს მიაღწევს, container ჩერდება და სუფთად გადაიტვირთება, swap-ში დატოვების ნაცვლად. ეს სწრაფი აღდგენაა, მაგრამ არასუფთა გაჩერებაა, ამიტომ ყველაფერს კარგავს, რაც შენახული არ იყო. დიდ სამყაროზე უფრო მოკლე autosave ინტერვალი და კვირაში ერთხელ დაგეგმილი restart იაფი დაზღვევაა.
პანელის გარედან ბრძანებების გასაშვებად არსებობს RCON, რომელიც ჩაირთვება enable-rcon=true, rcon.password და rcon.port (ნაგულისხმევი 25575) მნიშვნელობებით server.properties-ში. ეს ღია ტექსტის პროტოკოლია, სახელის ღირსი rate limit-ის გარეშე, ამიტომ მას ინტერნეტში არასოდეს უნდა გამოეჭიდო - RCON-ის უსაფრთხოდ გამოყენება აღწერს, რა გააკეთო ამის ნაცვლად.
FAQ#
რატომ მუშაობს ჩემი ბრძანება ჩატში და არა კონსოლში?
ჩვეულებრივ selector-ის გამო. @s და @p შემსრულებლის პოზიციაზეა დამოკიდებული, კონსოლი კი overworld-ის spawn-ზე სრულდება და საკუთარი entity არ აქვს. გადააწერე როგორც execute as @a at @s run ..., ან დაასახელე მოთამაშე. მეორე გავრცელებული მიზეზი წინა დახრილი ხაზია, რომელიც კონსოლს არ სურს.
როგორ გავუშვა ბრძანება მოთამაშის სახელით, ამ მოთამაშის გარეშე?
execute as <player> run <command> ცვლის შემსრულებელს, მაგრამ არა უფლების დონეს - ბრძანება მაინც კონსოლის დონე 4-ით სრულდება. ეს არის აზრი: ასე გადააადგილებ ვინმეს ან გაუშვებ plugin-ის ბრძანებას მისი კონტექსტში, op-ის მიცემის გარეშე.
სად ინახება gamerule-ები და გადაურჩება თუ არა განახლებას?
level.dat-ში სამყაროს საქაღალდის შიგნით, ამიტომ ისინი სამყაროს ეკუთვნის. სერვერის jar-ის განახლება მათ ინარჩუნებს; ახალი სამყაროს შექმნა ყველა მათგანს ნაგულისხმევზე აბრუნებს. თუ გაქვს ნაკრები, რომელსაც ყოველთვის იყენებ, შეინახე gamerule ხაზები ტექსტურ ფაილში შენი ჩანაწერების გვერდით.
შემიძლია ბრძანების ყოველ ღამე გაშვება დავგეგმო?
დიახ, პანელის Schedules ჩანართით: cron გამოსახულება და console command დავალება. ყოველდღიური say Restarting in 60 seconds, შემდეგ დაყოვნება და restart მოქმედება გავრცელებული შაბლონია, და ბევრად სჯობს ჩუმ restart-ს. თამაშის შიგნით datapack ფუნქციებსაც schedule function-ით შეუძლია დროზე მიბმული სამუშაო.
რა განსხვავებაა /kill @e-სა და /kill @e[type=item]-ს შორის?
kill @e კლავს ყველა entity-ს ჩატვირთულ chunk-ებში, მოთამაშეების ჩათვლით, რაც თითქმის არასოდეს არის ის, რასაც ვინმე გულისხმობს. ყოველთვის გაფილტრე ტიპით. kill @e[type=item] გასუფთავებს დაგდებულ ნივთებს, ხოლო kill @e[type=item,nbt={Item:{id:"minecraft:cobblestone"}}] ერთ სახეობას, ნელა.




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