Vanilla Minecraft-ში არ არსებობს პარამეტრი, რომელიც ყვითელ "joined the game" და "left the game" ხაზებს დამალავს ან შეცვლის. არც gamerule არსებობს, არც server.properties-ის გასაღები და არც datapack-ის ჰუკი. შესაცვლელად plugin გჭირდება, Paper სერვერზე კი ჩვეულებრივი პასუხი EssentialsX-ია: მისი config.yml-ის custom-join-message და custom-quit-message, სადაც "none" vanilla შეტყობინებას ტოვებს, "" კი მას სრულად მალავს. პერსონალს, რომელიც შეუმჩნევლად უნდა შემოვიდეს, სჭირდება allow-silent-join-quit: true და უფლებები essentials.silentjoin და essentials.silentquit. ერთ მოთხოვნას, "შეტყობინება ყველას აჩვენე, გარდა მოთამაშისა, ვინც შემოვიდა", კონფიგურაციის არცერთი ფაილი ვერ ფარავს - ამისთვის რამდენიმე ხაზი Skript ან პატარა plugin გჭირდება, ორივე ქვემოთ არის ნაჩვენები.
რატომ არ აქვს vanilla-ს ამის გადამრთველი#
შესვლის შეტყობინება ტექსტი არ არის, რომელსაც სერვერი წერს. როცა მოთამაშე შემოდის, სერვერი ყველა დაკავშირებულ კლიენტს უგზავნის თარგმნად კომპონენტს - გასაღებს multiplayer.player.joined და არგუმენტად მოთამაშის სახელს - და თითოეული კლიენტი მას თავის ენაზე აჩვენებს. გასვლისთვის გამოიყენება multiplayer.player.left, ხოლო მოთამაშეს, რომლის სახელიც ბოლო ვიზიტის შემდეგ შეიცვალა, ეძლევა multiplayer.player.joined.renamed, ანუ "(formerly known as ...)" ხაზი. შეტყობინება ეგზავნება ყველა ონლაინ მოთამაშეს, იმასაც, ვინც ახლახან შემოვიდა, და ასევე იბეჭდება სერვერის კონსოლში.
წლების განმავლობაში Mojang-მა ბევრი broadcast შეტყობინებისთვის დაამატა gamerule-ები - სიკვდილის შეტყობინებები, მიღწევების შეტყობინებები, ბრძანებების პასუხი - მაგრამ შესვლებისა და გასვლებისთვის არასდროს. სწორედ ამიტომ ჩნდება ეს კითხვა ისევ და ისევ: ხალხი gamerule-ების სიას ათვალიერებს, პოულობს showDeathMessages-სა და announceAdvancements-ს და ფიქრობს, რომ შესვლისთვისაც უნდა არსებობდეს ანალოგი. არ არსებობს. ბოლო ვერსიებში gamerule-ების გადარქმევაც მიმდინარეობს (1.21.11-მა ისინი გადაიტანა პატარა ასოებისა და ქვედა ტირეების სახელებზე, მაგალითად show_death_messages), ამიტომ თუ სიკვდილის ან მიღწევების გადამრთველს ეძებ, ძველ სიას ნუ ენდობი და საკუთარ ვერსიაზე /gamerule tab-ით შეავსე.
რა აქვს vanilla-ს სრულყოფისთვის:
- სერვერის resource pack-ს შეუძლია თარგმანის გადაფარვა. თუ pack-ის ენის ფაილში
multiplayer.player.joined-ს ცარიელ სტრიქონზე დააყენებ, კლიენტები სხვა ტექსტს აჩვენებენ, მაგრამ ეს მუშაობს მხოლოდ იმ მოთამაშეებზე, ვინც pack-ს მიიღებს, ზოგ ვერსიაზე ჩატში ცარიელ ხაზს ტოვებს და pack-ის ჩატვირთვის დროს ტექსტს singleplayer-შიც ცვლის. ეს კურიოზია და არა გამოსავალი. MOTD, icon და resource pack-ები განმარტავს, როგორ მიეწოდება სერვერის pack. - კონსოლის მხარეს არაფერია. კონსოლის ლოგის ხაზიც plugin-ის გარეშე ვერ ჩაიხშობა.
ამრიგად, vanilla ან Fabric სერვერზე პატიოსანი პასუხია: "გადადი Paper-ზე ან მოძებნე mod, რომელიც შეტყობინებას ცვლის". ამ გზამკვლევის დანარჩენი ნაწილი ვარაუდობს Paper-ს ან Paper-ის fork-ს, რასაც plugin-იანი სერვერების უმეტესობა იყენებს.
რისი შეცვლა შეუძლია და რისი არა Paper-სა და Spigot-ს#
არც Paper და არც Spigot შესვლის შეტყობინებას საკუთარ კონფიგურაციის ფაილებში არ გამოიტანს. spigot.yml-ს აქვს messages: ბლოკი, მაგრამ ის ფარავს whitelist-ით გაგდებას, უცნობ ბრძანებას, სავსე სერვერს, მოძველებულ კლიენტსა და სერვერს და გადატვირთვის ტექსტებს - შესვლებს არა. Paper-ის config/paper-global.yml-ს აქვს messages: სექცია ერთი დაკავშირებული გასაღებით:
messages: use-display-name-in-quit-message: falsetrue-ს შემთხვევაში quit შეტყობინება იყენებს მოთამაშის display name-ს (რომელიც nickname-ის ან prefix-ის plugin-მა შეიძლება შეცვალოს) username-ის ნაცვლად. ის შეტყობინებას არ მალავს და შესვლებისთვის მსგავსი გასაღები არ არსებობს.
Paper-ი გაძლევს API-ს. ყოველი შესვლა იწვევს PlayerJoinEvent-ს, რომლის შეტყობინების ჩანაცვლება ან გასუფთავება ნებისმიერ plugin-ს შეუძლია, ყოველი გასვლა კი - PlayerQuitEvent-ს. Paper ამისთვის Adventure კომპონენტებს იყენებს, ამიტომ plugin-ს შეუძლია სრულად ფორმატირებული შეტყობინება დააყენოს hex ფერებით, hover ტექსტით და click მოქმედებებით. ასე მუშაობს EssentialsX-იც, vanish plugin-ებიც და ჩატის plugin-ებიც - და სწორედ ამიტომ შეიძლება ორმა მათგანმა, ერთად დაყენებულმა, ერთი შეტყობინებისთვის იჭიდაოს, რასაც ქვემოთ, პრობლემების მოგვარებაში განვიხილავთ.
| სად | join/quit კონტროლი | შენიშვნები |
|---|---|---|
| Vanilla, Fabric | არ არის | მხოლოდ mod-ები ან resource pack-ის ხრიკი |
spigot.yml | არ არის | მხოლოდ სხვა გაგდებისა და შეცდომის ტექსტები |
paper-global.yml | მხოლოდ quit-ის სახელი | use-display-name-in-quit-message |
| Plugin-ები | სრული | join და quit event-ების მეშვეობით |
EssentialsX custom-join-message და custom-quit-message#
თუ EssentialsX უკვე დგას სერვერზე, ჩვეულებრივი შემთხვევებისთვის სხვა არაფერი გჭირდება. გასაღებები არის plugins/Essentials/config.yml-ში, core jar-ში, ამიტომ მოდული საჭირო არ არის. ნაგულისხმევი მნიშვნელობები:
custom-join-message: "none"custom-quit-message: "none"custom-new-username-message: "none"hide-join-quit-messages-above: -1ორი მნიშვნელობა, რომელიც მნიშვნელოვანია, ადვილად ერევა ერთმანეთში და ფორუმის ბევრი პასუხი მათ პირიქით წერს:
"none"ნიშნავს, რომ Essentials შეტყობინებას არ ეხება - მოთამაშეები ხედავენ ჩვეულებრივ vanilla "joined the game" ხაზს.""(ცარიელი სტრიქონი) ნიშნავს, რომ შეტყობინება სრულად იმალება.
ამრიგად, ორივე შეტყობინების ყველასთვის დასამალად ასე ჩაწერე:
custom-join-message: ""custom-quit-message: ""შემდეგ გაუშვი /essentials reload (კონსოლიდან essentials reload ხაზის გარეშე) და შეამოწმე მეორე ანგარიშით შესვლით. ფაილის ზოგადი მექანიკა - YAML-ის წესები, რას სჭირდება restart, რომელი სექცია რომელ მოდულის jar-ზეა დამოკიდებული - აღწერილია EssentialsX-ის config.yml-ის გზამკვლევში, ამიტომ აქ არ მეორდება.
შეტყობინების დამალვის ნაცვლად შესაცვლელად დაწერე საკუთარი ტექსტი & ფერის კოდებით და Essentials-ის placeholder-ებით:
| Placeholder | იქცევა |
|---|---|
{PLAYER} | Display name (nickname, prefix) |
{USERNAME} | ანგარიშის სახელი |
{PREFIX} / {SUFFIX} | Prefix და suffix permissions plugin-იდან |
{ONLINE} | ახლა ონლაინ მყოფი მოთამაშეები |
{UNIQUE} | უნიკალური მოთამაშეები, ვინც ოდესმე შემოსულა |
{UPTIME} | რამდენი ხანია სერვერი მუშაობს |
custom-join-message: "&8[&a+&8] &7{USERNAME}"custom-quit-message: "&8[&c-&8] &7{USERNAME}"ეს კომპაქტური [+] name / [-] name სტილი პოპულარულია დატვირთულ სერვერებზე, რადგან ინფორმაციას ოთხჯერ ნაკლებ ადგილში ატევს. პატარა სერვერისთვის უფრო მეგობრული ვერსია შეიძლება იყოს "&e{PLAYER} &7has arrived - {ONLINE} online".
რამდენიმე დეტალი, რომელიც ფორმატის არჩევამდე უნდა იცოდე:
- `{PLAYER}` და `{USERNAME}`.
{PLAYER}მოიცავს ყველაფერს, რასაც display name-მა მოიკრიბა -/nick-ს, LuckPerms-იდან Vault-ის მეშვეობით მიღებულ rank prefix-ს. თუ შენი ჩატის ფორმატი უკვე აჩვენებს rank-ებს,{PLAYER}-იანი join ხაზი შეიძლება გრძელი და ხმაურიანი გამოვიდეს.{USERNAME}ყოველთვის უბრალო ანგარიშის სახელია. - Prefix-ებს Vault სჭირდება.
{PREFIX}და{SUFFIX}მოდის შენი permissions plugin-იდან Vault-ის მეშვეობით. LuckPerms-ით, მაგრამ Vault-ის გარეშე, ისინი ცარიელი გამოდის. LuckPerms-ის გზამკვლევი განმარტავს, როგორ დააყენო prefix-ები ჯგუფების მიხედვით. - მნიშვნელობა ბრჭყალებში ჩასვი. შეტყობინება, რომელიც
&-ით იწყება ან ორწერტილს შეიცავს, ბრჭყალებში უნდა იყოს, თორემ YAML ვერ დაიპარსება და Essentials ჩუმად ძველ მნიშვნელობას ინარჩუნებს.
სახელშეცვლილი მოთამაშეები
custom-new-username-message გამოიყენება custom-join-message-ის ნაცვლად, როცა დაბრუნებულმა მოთამაშემ ბოლო ვიზიტის შემდეგ Mojang-ის username შეიცვალა. ნაგულისხმევ "none"-ზე Essentials მათთვისაც შენს ჩვეულებრივ custom join შეტყობინებას იყენებს. თუ სახელის შეცვლის ხაზგასმა გინდა, ის {OLDUSERNAME}-საც იღებს. თუ custom join შეტყობინებას აყენებ, ეს გასაღებიც შეამოწმე, თორემ სახელშეცვლილი მოთამაშეები სხვა სტილის შეტყობინებას მიიღებენ, ვიდრე დანარჩენები.
შეტყობინებების დამალვა მხოლოდ დატვირთვისას
hide-join-quit-messages-above პარამეტრია, რომელიც დიდ სერვერებს სჭირდება და პატარებს - არა. -1-ზე (ნაგულისხმევი) შეტყობინებები ყოველთვის ჩანს. თუ რიცხვს მიუთითებ, join და quit შეტყობინებები წყდება, როგორც კი იმდენი მოთამაშე გახდება ონლაინ:
hide-join-quit-messages-above: 40სერვერზე, სადაც სამოცი ადამიანია და მუდმივი მოძრაობა, join სპამი ნამდვილ საუბარს ეკრანიდან ჩამოაგდებს; რვა მეგობრის სერვერზე კი join ხაზი სწორედ ის გზაა, რომლითაც იგებ, რომ ვიღაც ონლაინ არის. ეს გასაღები საშუალებას აძლევს ერთსა და იმავე კონფიგურაციას სერვერის ორივე ეტაპს ემსახუროს.
მოთამაშის საკუთარი join შეტყობინების დამალვა მისგან#
თემა, რომლის გამოც ბევრი აქ მოდის, უფრო ვიწროა: ყველამ სხვამ უნდა ნახოს "Alex joined the game", Alex-მა კი - არა, რადგან თავად იცის, ხოლო სერვერზე, სადაც ჩატში welcome შეტყობინება ან MOTD არის, ეს კიდევ ერთი ხაზია, რომელიც სასარგებლო ტექსტს განზე სწევს.
EssentialsX-ის არცერთი გასაღები ამას არ აკეთებს. join event-ს აქვს ერთი შეტყობინება, რომელიც ყველას ეგზავნება; მიმღებების სია არ აქვს. გამოსავალი ისაა, რომ event-ის შეტყობინება გაასუფთაო და საკუთარი ასლი ყველა მოთამაშეს გაუგზავნო, გარდა იმისა, ვინც შემოვიდა. Skript-ში, თუ უკვე იყენებ:
on join: set join message to "" loop all players: loop-player is not player send "&e%player% joined the game" to loop-playerხაზი loop-player is not player არის პირობა, რომელიც შემომსვლელ მოთამაშეს გამოტოვებს. თუმცა Skript მძიმე plugin-ია მხოლოდ ამის გამო დასაყენებლად. თუ შენ ან შენი გუნდის წევრი Java-ს წერს, იგივე Paper plugin-ის listener-ში თორმეტიოდე ხაზია:
@EventHandlerpublic void onJoin(PlayerJoinEvent event) { Component message = event.joinMessage(); event.joinMessage(null); if (message == null) return; Player joined = event.getPlayer(); for (Player p : Bukkit.getOnlinePlayers()) { if (!p.equals(joined)) p.sendMessage(message); } Bukkit.getConsoleSender().sendMessage(message);}ამ კოდში ორი რამ განზრახაა. joinMessage()-ის ჯერ წაკითხვა და მერე ხელახლა გაგზავნა ნიშნავს, რომ რასაც EssentialsX ან სხვა plugin უკვე დააყენებდა, შენარჩუნდება - შენი listener მხოლოდ იმას ცვლის, ვინ იღებს შეტყობინებას. კონსოლის ხაზი კი შესვლას სერვერის ლოგში აბრუნებს, რადგან event-ის შეტყობინების გასუფთავება მას კონსოლიდანაც შლის, რაც მოგვიანებით მოდერაციას ართულებს. listener გვიანდელ პრიორიტეტზე დაარეგისტრირე (@EventHandler(priority = EventPriority.HIGHEST)), რომ ის შეტყობინების ფორმატირებელი plugin-ების შემდეგ გაეშვას.
ამას ნუ შეურევ Essentials-ში custom-join-message: ""-ს. თუ Essentials შეტყობინებას პირველი გაასუფთავებს, შენს listener-ს გადასაგზავნი არაფერი დახვდება და შესვლას არავინ დაინახავს.
Silent join პერსონალისთვის#
პერსონალს ხშირად უნდა, საკუთარი თავის გამოცხადების გარეშე შემოვიდეს - საეჭვო cheater-ზე თვალის დასაჭერად, ღამის 3 საათზე რამის შესამოწმებლად, ან უბრალოდ იმიტომ, რომ მოდერატორის შემოსვლა ჩატის ქცევას ცვლის. EssentialsX ამას ერთი კონფიგურაციის გასაღებით და სამი უფლებით წყვეტს:
allow-silent-join-quit: true| უფლება | ეფექტი |
|---|---|
essentials.silentjoin | ამ მოთამაშისთვის join შეტყობინება არ ჩანს |
essentials.silentquit | ამ მოთამაშისთვის quit შეტყობინება არ ჩანს |
essentials.silentjoin.vanish | შესვლისას დამატებით vanish-შიც არის |
არცერთი უფლება არაფერს აკეთებს, სანამ allow-silent-join-quit არის false, ანუ ნაგულისხმევად, ამიტომ გასაღების ჩართვა ის ნაბიჯია, რომელსაც ხალხი ტოვებს. უფლებები ინდივიდებს კი არა, ჯგუფს მიანიჭე:
$ lp group moderator permission set essentials.silentjoin true$ lp group moderator permission set essentials.silentquit true$ lp group moderator permission set essentials.silentjoin.vanish trueდაფიქრდი, გინდა თუ არა vanish უფლებაც. Vanish-ის გარეშე silent join მაინც ტოვებს მოთამაშეს tab სიაში, /list-ის გამოტანასა და მძინარე მოთამაშეების ათვლაში, ასე რომ, ვინც ყურადღებით არის, წამებში ხედავს მის შემოსვლას. Silent join მხოლოდ ჩატის ხაზს შლის. ერთ ხაფანგს ფრთხილად: wildcard ჯგუფი essentials.*-ით სამივე უფლებას შეიცავს, ამიტომ ადმინებს, რომლებიც ჩვეულებრივ გამოცხადებას ელოდნენ, ეს არ მოუვათ. თუ wildcard გინდა, მაგრამ სიჩუმე - არა, ამ ჯგუფზე ეს უფლებები პირდაპირ false-ზე დააყენე.
Vanish plugin-ები და ყალბი join ან quit შეტყობინებები#
Vanish პერსონალის პრობლემის მეორე ნახევარია. EssentialsX-ს აქვს /vanish (უფლება essentials.vanish), რომელიც მოთამაშეს სხვების tab სიასა და ხედვიდან მალავს. მასთან დაკავშირებული გასაღებები:
hide-displayname-in-vanish: true- vanish-ში მყოფი მოთამაშის display name-ს იმ ადგილებს არიდებს, სადაც ის გასცემდა მას.sleep-ignores-vanished-player: true- vanish-ში მყოფი ადმინი ღამის გამოტოვებას არ აფერხებს.last-message-reply-vanished: false- მოთამაშეებს არ შეუძლიათ/reply-ით უპასუხონ vanish-ში მყოფ მოთამაშეს, რომელსაც ვერ ხედავენ, რაც სხვაგვარად საიდუმლოს გასცემდა.
Essentials-ის /vanish ყალბ "left the game" ხაზს არ აქვეყნებს, როცა ვინმე vanish-ში გადადის, ამიტომ მოდერატორი, რომელიც საუბრის შუაში vanish-ში გადადის, უბრალოდ ქრება tab სიიდან ახსნის გარეშე. სწორედ აქ იმსახურებს ადგილს სპეციალიზებული vanish plugin-ები. SuperVanish-ს (უფასო) და PremiumVanish-ს (ფასიანი, იგივე ავტორი) შეუძლიათ ყალბი quit შეტყობინების გაგზავნა, როცა მოთამაშე vanish-ში გადადის, და ყალბი join შეტყობინებისა, როცა ისევ ჩნდება, vanish-ში შემოსული მოთამაშეებისთვის ნამდვილი join და quit შეტყობინებების დამალვა და სხვა plugin-ებთან ინტეგრაცია, რათა vanish-ში მყოფი პერსონალი არ გამოჩნდეს web რუკებზე ან Discord ხიდებში. მათი პარამეტრები საკუთარ კონფიგურაციის ფაილებშია; პირველი გაშვების შემდეგ წაიკითხე გენერირებული config.yml და ძველი ფორუმის პოსტიდან გასაღებებს ნუ გადმოწერ, რადგან განლაგება ვერსიებს შორის შეიცვალა.
გამოიყენე ერთი vanish სისტემა და არა ორი. SuperVanish-ის გაშვება Essentials-ის /vanish-თან ერთად ორ სხვადასხვა წარმოდგენას გაძლევს იმაზე, ვინ არის დამალული, და სხვა plugin-ები იმას დაუჯერებენ, ვისაც ჰკითხავენ.
First-join შეტყობინებები და მისალმებები#
პირველად, როცა მოთამაშე საერთოდ შემოდის, შეიძლება ორი შეტყობინება გამოჩნდეს: ჩვეულებრივი join შეტყობინება (vanilla ან შენი custom) და Essentials-ის ახალი მოთამაშის broadcast Spawn მოდულიდან.
newbies: announce-format: '&dWelcome {DISPLAYNAME}&d to the server!' spawnpoint: newbies kit: toolsannounce-format ეგზავნება ყველას, მხოლოდ მოთამაშის პირველ შესვლაზე და მხოლოდ იმ შემთხვევაში, თუ EssentialsX Spawn-ის jar დაყენებულია - მის გარეშე newbies: სექცია საერთოდ არ იკითხება. მისალმების გასათიშად დააყენე ''. შენიშვნა: placeholder აქ არის {DISPLAYNAME} და არა {PLAYER}; ორი სექცია ერთსა და იმავეს სხვადასხვა სახელს ეძახის და ერთის მეორეში გადმოტანა ბეჭდავს ლიტერალურ ტექსტს. იმავე ბლოკის kit და spawnpoint ხაზები განხილულია EssentialsX-ის kit-ების, warp-ებისა და home-ების სტატიაში.
კარგი პატერნი community სერვერზე ისაა, რომ ჩვეულებრივი შესვლა წყნარია ([+] name), პირველი შესვლის მისალმება კი უფრო ხმამაღალი, რათა რეგულარებმა ახალი მოთამაშე შეამჩნიონ და მიესალმონ, ჩატი კი მთელი საღამო ყვითელი ხაზებით არ გაივსოს. თუ პირადი მისალმება გინდა, რომელსაც მხოლოდ ახალი მოთამაშე ნახავს - წესები, Discord-ის ბმული - ეს დღის შეტყობინებაა (message of the day) და არა join შეტყობინება. EssentialsX ყოველ მოთამაშეს შესვლისას უჩვენებს თავისი საქაღალდის motd.txt ფაილს, და მხოლოდ მას.
ფერები, hex და MiniMessage#
custom-join-message და custom-quit-message იღებენ ძველ & კოდებს: &a-დან &f-მდე და &0-დან &9-მდე ფერებისთვის, &l გამუქებული, &o დახრილი, &r გადატვირთვა. უმეტესი საჭიროებისთვის ეს საკმარისია.
MiniMessage არის Adventure ბიბლიოთეკის ტეგებზე დაფუძნებული ფორმატი, რომელსაც Paper იყენებს - <green>, <gradient:#ff0000:#0000ff>, <hover:show_text:'...'>. თანამედროვე plugin-ები სულ უფრო ხშირად სწორედ მას ელიან და ის ერთადერთი პრაქტიკული გზაა, join ხაზზე hover ტექსტის ან click მოქმედებების დასამატებლად. EssentialsX-მა თავისი ენის ფაილები MiniMessage-ის სტილის ტეგებზე 2.21 გამოშვებებში გადაიტანა (აქედან მოდის config.yml-ის message-colors ძირითადი და მეორადი ფერები), მაგრამ config.yml-ის join და quit გასაღებები კვლავ & კოდებსა და placeholder-ებს აღწერენ. თუ gradient ან დაჭერადი join შეტყობინება გინდა, დააყენე შეტყობინება plugin-იდან, რომელიც MiniMessage-ს მხარს უჭერს, ან საკუთარი listener-იდან MiniMessage.miniMessage().deserialize(...)-ით, ხოლო Essentials-ის გასაღებები დატოვე "none"-ზე, რომ ორმა ერთმანეთს არ შეეჯახოს.
რასაც არ უნდა იყენებდე, join ხაზები მოკლე გააკეთე. ისინი დღეში ათეულჯერ ჩნდება და ორხაზიანი gradient ბანერი მეორე საღამოსთვის უკვე აღარ არის სასიამოვნო.
ქსელები, Discord და სხვა ადგილები, სადაც join ჩნდება#
თამაშში ხაზის დამალვა join-ს ყველგან არ მალავს.
- Proxy ქსელები. Velocity-ის ან BungeeCord-ის უკან ყოველი backend სერვერი საკუთარ join და quit event-ებს იწვევს. მოთამაშე, რომელიც lobby-დან survival-ზე გადადის, lobby-ს "ტოვებს" და survival-ზე "შედის", ამიტომ ორივე სერვერი აცხადებს ამას და მოთამაშეები join სპამს ხედავენ, როცა ვინმე სერვერს ცვლის. ჩვეულებრივი გამოსავალია, რომ ყველა backend-ზე join და quit შეტყობინებები დაიმალოს (
custom-join-message: ""თითოეულზე) და ქსელის მასშტაბით join და leave შეტყობინებებისთვის proxy-ს მხარეს plugin გამოიყენო. Velocity proxy ქსელები განმარტავს განლაგებას. - Discord ხიდები. DiscordSRV საკუთარ join და leave შეტყობინებებს აქვეყნებს დაკავშირებულ არხში, რომლებიც მის საკუთარ ფაილებშია კონფიგურირებული. თამაშში მათი დამალვა იქ არაფერს ცვლის - იხილე DiscordSRV და Discord-ის ინტეგრაცია და შეამოწმე მისი vanish ინტეგრაცია, თუ პერსონალი silent join-ით შემოდის.
- Tab სია და `/list`. დამალული join შეტყობინება მოთამაშეს ორივეში ხილულს ტოვებს, თუ ის vanish-ში არ არის.
- კონსოლი. event-ში შეტყობინების გასუფთავება მას ლოგიდანაც შლის. თუ მოდერაცია ლოგზეა დამოკიდებული, ხელახლა გაუგზავნე კონსოლს, როგორც ზემოთ listener-შია.
პრობლემების მოგვარება#
`custom-join-message: "none"` მაინც აჩვენებს შეტყობინებას. ეს სწორი ქცევაა - "none" ნიშნავს vanilla-ს. დასამალად გამოიყენე "".
Reload-ის შემდეგ ცვლილებები არაფერს აკეთებს. YAML ვერ დაიპარსა (ყველაზე ხშირი მიზეზია ბრჭყალების გარეშე მნიშვნელობის დასაწყისში &), ან ფაილის ასლი შეცვალე. /essentials reload-ის გაშვებისას კონსოლს უყურე; პარსინგის შეცდომა ხაზს დაასახელებს.
ორი join შეტყობინება ჩნდება. ორი plugin ორივე ერთსა და იმავეს აყენებს - Essentials და ჩატის ან join-შეტყობინების plugin, ან Essentials და SuperVanish. ერთ-ერთი ნაგულისხმევზე დატოვე. თუ ორიდან ერთი first-join announce-format-ია, ეს მხოლოდ პირველ შესვლაზე არის მოსალოდნელი.
Silent join-ის მქონე პერსონალი მაინც ცხადდება. allow-silent-join-quit ისევ false-ია, ან უფლება ისეთ ჯგუფზეა, რომელსაც მოთამაშე არ იძენს მემკვიდრეობით. lp user <name> permission check essentials.silentjoin გვიჩვენებს, რას ხედავს Essentials.
ადმინები ჩუმად შედიან, როცა არ უნდა. wildcard, როგორიცაა essentials.*, silent უფლებებს შეიცავს. ამ ჯგუფზე ისინი false-ზე დააყენე.
Plugin-ის დაყენების შემდეგ შეტყობინებები საერთოდ გაქრა. რაღაცამ event-ის შეტყობინება უფრო მაღალ პრიორიტეტზე გაასუფთავა. plugin-ები სათითაოდ წაშალე, ან გაუშვი /plugins და მოძებნე რამ, რომლის სახელშიც "join" ან "chat" არის. Plugin-ები, რომლებიც დაყენებად ღირს განმარტავს, რატომ იწვევს ერთი საქმის ორი plugin-ი ზუსტად ამას.
FAQ#
არსებობს gamerule join შეტყობინებების გასათიშად?
არა. სიკვდილის შეტყობინებებისა და მიღწევების გამოცხადებისთვის gamerule-ები არსებობს, მაგრამ Java Edition-ში join და leave შეტყობინებებს ის არასდროს ჰქონია. გჭირდება plugin ან mod.
"none" მალავს EssentialsX-ის join შეტყობინებას?
არა, პირიქით: "none" Essentials-ს ეუბნება, რომ vanilla შეტყობინებას ხელი არ ახლოს. ცარიელი სტრიქონი, "", მალავს მას.
შემიძლია join შეტყობინება დავმალო მხოლოდ იმ მოთამაშისგან, ვინც შემოვიდა?
კონფიგურაციის პარამეტრით - არა. join შეტყობინება ერთი broadcast-ია ყველასთვის. გაასუფთავე და ხელახლა გაუგზავნე ყველა მოთამაშეს, გარდა შემომსვლელისა, Skript-ით ან პატარა listener-ით.
შეიძლება თუ არა rank-იანი მოთამაშეები გამოცხადების გარეშე შემოვიდნენ?
დიახ. Essentials-ში დააყენე allow-silent-join-quit: true და მათ ჯგუფს მიანიჭე essentials.silentjoin და essentials.silentquit. დაამატე essentials.silentjoin.vanish, თუ შესვლისას უხილავიც უნდა იყვნენ.
join შეტყობინებების დამალვა შეაჩერებს Discord-ში შესვლების ჩვენებას?
არა. Discord ხიდები, როგორიცაა DiscordSRV, საკუთარ join და leave შეტყობინებებს აგზავნიან, რომლებიც ხიდის ფაილებში ცალკეა კონფიგურირებული.


