Mitarbeiter-Vanish (Veritévoiler)

Veritévoiler ist Verités Mitarbeiter-Vanish. Er lässt einen Mitarbeiter für gewöhnliche Spieler unsichtbar werden, sodass er eine Situation still beobachten und dann wieder erscheinen kann, wenn er fertig ist. Vanish ist mehr als das Verstecken eines Körpers: er bringt auch die kleinen Verräter zum Schweigen, die andernfalls einen versteckten Mitarbeiter enthüllen würden, etwa Schritte, Partikel, Chat, Präsenz in der Serverliste und Beitritts- oder Verlassensnachrichten.

Die Komponente ist standardmäßig aktiviert. Ein Mitarbeiter schaltet sie mit dem Vanish-Befehl ein. Für den Befehl selbst und wer ihn ausführen kann, siehe die Befehlsreferenz. Für jeden auf dieser Seite genannten Berechtigungsknoten siehe die Berechtigungsreferenz. Für die genauen Konfigurationsschlüssel und ihre Standardwerte siehe den Abschnitt vanish, der unter Funktionsschalter beschrieben ist.

Vanish ein- und ausschalten

Ein Mitarbeiter führt den Vanish-Befehl aus, um sich zu verstecken, und führt ihn erneut aus, um wieder zu erscheinen. Jemand mit der richtigen Berechtigung kann auch einen anderen Spieler verstecken oder sichtbar machen, indem er ihn benennt. Der Vanish-Zustand wird gemerkt: ein versteckter Mitarbeiter, der die Verbindung trennt, oder wenn der Server neu startet, kommt weiterhin versteckt zurück.

Während er versteckt ist, wird ein Mitarbeiter für jeden Spieler, der ihn nicht sehen darf, aus der Ansicht entfernt. Spieler, die versteckte Mitarbeiter sehen dürfen, sehen den Mitarbeiter weiterhin normal.

Vanish-Stufen

Vanish ist gestuft, sodass sich höhere Mitarbeiter sogar vor niedrigeren verstecken können. Jeder Mitarbeiter hat eine Vanish-Stufe, die aus der höchsten verite.vanish.level.<n>-Berechtigung genommen wird, die er besitzt (zum Beispiel verite.vanish.level.3). Ein Betrachter kann einen versteckten Mitarbeiter nur sehen, wenn er die verite.vanish.see-Berechtigung besitzt und seine eigene Stufe mindestens so hoch wie die Stufe des versteckten Mitarbeiters ist.

Das bedeutet, dass ein Mitarbeiter mit höherer Stufe für einen mit niedrigerer Stufe unsichtbar bleibt, während gleiche oder höhere Stufen einander sehen können. Wenn keine Stufenberechtigung vorhanden ist, teilen sich alle die Stufe null, sodass die See-Berechtigung allein entscheidet, wer wen sehen kann.

Stufen kommen von LuckPerms

Die Stufenauflösung liest die verite.vanish.level.<n>-Knoten über LuckPerms, einschließlich von Gruppen geerbter Knoten. LuckPerms ist optional: wenn es nicht installiert ist, teilen sich alle Mitarbeiter die Stufe null und nur verite.vanish.see ist von Bedeutung.

Wovor ein versteckter Mitarbeiter verborgen ist

Während ein Mitarbeiter versteckt ist, verbirgt Verité die Spuren, die ihn andernfalls enthüllen würden. Jede davon kann für sich ein- oder ausgeschaltet werden.

Spur Was verborgen wird
Der Spieler selbst Der Körper wird für jeden, der den Mitarbeiter nicht sehen darf, aus der Ansicht entfernt, unter Verwendung der Standard-Sichtbarkeitsbehandlung.
Chat Alles, was ein versteckter Mitarbeiter tippt, wird nur an Mitarbeiter zugestellt, die ihn sehen dürfen, plus die Serverkonsole. Reguläre Spieler erhalten es niemals.
Serverlisten-Ping Der versteckte Mitarbeiter wird aus der Spielerstichprobe entfernt, die in der Mehrspielerliste gezeigt wird, und wo die Plattform es erlaubt, wird die Online-Anzahl entsprechend gesenkt.
Beitritts- und Verlassensnachrichten Während er versteckt ist, zeigt ein Mitarbeiter, der dem Server beitritt oder ihn verlässt, keine Beitritts- oder Verlassensnachricht.
Geräusche Schritte, Essen, Trinken, Platschen und ähnliche positionierte Geräusche, die vom Standort des Mitarbeiters kommen, werden für Spieler, die ihn nicht sehen dürfen, verworfen.
Partikel Bewegungs- und Aktionspartikel vom Standort des Mitarbeiters werden für Spieler, die ihn nicht sehen dürfen, verworfen.
Aufheben und Fallenlassen von Gegenständen Der Mitarbeiter kann keine Gegenstände aufheben oder fallen lassen, sodass sich kein Gegenstand von selbst bewegt.
Weltinteraktion Blockabbau und -platzierung, Druckplatten und Stolperdrähte sowie das Füllen oder Leeren von Eimern werden verhindert.
Fortschritte Fortschrittsankündigungen von einem versteckten Mitarbeiter werden unterdrückt.
Projektile Pfeile, Schneebälle und andere Projektile können nicht abgefeuert werden, sodass nichts aus dem Nichts hervorschießt.
Schaden und Anvisieren Der Mitarbeiter nimmt und verursacht keinen Schaden, und Monster visieren ihn nicht an.
Hunger und Luft Der Hunger nimmt nicht ab und die Luftleiste bleibt unter Wasser voll.
Fahrzeuge Wenn ein anderer Spieler versucht, ein Fahrzeug zu besteigen, das der Mitarbeiter reitet, wird der Mitarbeiter zuerst leise vom Sitz entfernt.

Spieler und Mitarbeiter, die den versteckten Mitarbeiter sehen dürfen, und der versteckte Mitarbeiter selbst, hören, sehen und erhalten weiterhin alles normal.

Das Verbergen von Geräuschen und Partikeln reicht in den Server hinein

Geräusche und Partikel sind die einzigen Spuren, die der Server direkt an nahe Spieler sendet, sodass keine gewöhnliche Einstellung sie stoppen kann. Verité filtert sie auf Verbindungsebene. Auf einer Serverversion, die dies nicht sicher lesen kann, schalten sich das Verbergen von Geräuschen und Partikeln selbst ab und der Rest von Vanish funktioniert weiter. Das Matching erfolgt nach Nähe zur jüngsten Position des Mitarbeiters, sodass ein Geräusch, das weit entfernt vom Mitarbeiter ausgelöst wird (zum Beispiel ein von ihm abgefeuertes Projektil, das separat verhindert wird), hier nicht abgedeckt ist.

Die gefälschte Verlassensnachricht

Dies ist das Anti-Umgehungs-Herz von Vanish. Wenn ein Mitarbeiter sich versteckt, kann der Server eine normal aussehende Verlassensnachricht senden, sodass jeder glaubt, dieser Mitarbeiter habe sich abgemeldet, während er in Wirklichkeit online bleibt und beobachtet. Ein Regelbrecher, der sich nur benahm, weil Mitarbeiter anwesend waren, kann sich dann vor jemandem, den er nicht sehen kann, einen Fehltritt erlauben. Wenn der versteckte Mitarbeiter wieder sichtbar wird, erscheint er einfach ohne Nachricht wieder.

Dies wird durch den fake.message-Schalter gesteuert. Wenn er aus ist, wird keine gefälschte Verlassensnachricht gezeigt.

Beobachtervorteile (Effekte)

In dem Moment, in dem ein Mitarbeiter sich versteckt, erhält er einen Satz von Komfortvorteilen, die das Beobachten erleichtern, ohne ihn zu verraten. Welche Vorteile gelten, hängt sowohl vom passenden Konfigurationsschalter als auch von den Berechtigungen des Mitarbeiters ab.

Vorteil Erfordert Was er tut
Selbstansicht-Transparenz self.view-Schalter Der eigene Körper des Mitarbeiters sieht auf seinem eigenen Bildschirm durchscheinend aus, eine klare Erinnerung, dass er versteckt ist.
Keine Kollisionen Immer, während versteckt Andere Spieler stoßen nicht mehr mit dem Mitarbeiter zusammen.
Schlaf ignoriert Immer, während versteckt Der Mitarbeiter hält die Nacht nie auf; er wird nicht zum Schlafen mitgezählt.
Flug fly-Schalter und verite.vanish.fly Der Mitarbeiter kann fliegen, während er versteckt ist.
Unverwundbarkeit invulnerability-Schalter und verite.vanish.invulnerable Der Mitarbeiter nimmt keinen Schaden.
Nachtsicht effects-Schalter und verite.vanish.effects Der Mitarbeiter kann im Dunkeln sehen.

Die Nachtsicht ist ein echter Trankeffekt, weil der Client selbst die Ansicht aufhellt, sodass ihr kleines Statussymbol der eine unvermeidbare Bildschirmmarker ist. Sie wird ohne Partikel oder Funken angewendet. Welche Nachtsicht der Mitarbeiter bereits hatte, wird in dauerhaftem Speicher gemerkt, bevor der Vanish-Effekt angewendet wird, sodass sie einen Neustart überlebt. Wenn der Mitarbeiter wieder sichtbar wird, wird sein Körper solide, die Vanish-Nachtsicht wird entfernt, und sein ursprünglicher Effekt wird genau so wiederhergestellt, wie er war, oder ausgelassen, wenn er keinen hatte.

Feuerresistenz und Wasseratmung werden bewusst nicht als Effekte gewährt, da ein versteckter Mitarbeiter bereits keinen Feuer-, Lava- oder Ertrinkungsschaden nimmt und eine volle Luftleiste behält, sodass diese Effekte reine Bildschirmunordnung wären. Wenn der Mitarbeiter wieder erscheint, wird der Flug nur beibehalten, wenn er verite.vanish.fly.keep besitzt oder er sich im Kreativ- oder Zuschauermodus befindet.

Beobachterwerkzeuge

Über die obigen Vorteile hinaus hat ein versteckter Mitarbeiter mehrere Werkzeuge, um eine Situation zu inspizieren. Jedes hat seinen eigenen Konfigurationsschalter.

  • Doppel-Schleich-Zuschauerumschaltung (gamemode): während er versteckt ist, versetzt zweimaliges schnelles Drücken von Schleichen den Mitarbeiter in den Zuschauermodus, um durch Wände zu schweben und zu beobachten, und erneutes Doppel-Schleichen bringt ihn in seinen vorherigen Modus zurück. Die beiden Betätigungen müssen innerhalb eines kurzen Fensters erfolgen.
  • Lautloses Behälteröffnen (silent.container): das Rechtsklicken einer Truhe, eines Fasses, einer Shulker-Kiste oder eines anderen Behälters öffnet ihn ohne Deckelanimation, Geräusch oder Öffnungszähler, die nahe Spieler informieren würden. Das Rechtsklicken einer Endertruhe öffnet die eigene Endertruhe des Mitarbeiters.
  • Spielerinventarprüfung (inventory.inspect): Schleichen und Rechtsklick auf einen anderen Spieler öffnet eine Live-Ansicht dessen, was er trägt. Der geprüfte Spieler sieht die Interaktion nie.
  • Geistansicht (ghost): für einen Betrachter, der einen versteckten Kollegen sehen darf, wird der versteckte Mitarbeiter als durchscheinende zuschauerartige Figur gezeigt, statt vollständig unsichtbar zu sein. Dies ist nur eine betrachterbezogene visuelle Überlagerung; sie ändert nie den echten Spielmodus des Mitarbeiters. Auf einer Serverversion, die sie nicht auflösen kann, sieht der Betrachter den Mitarbeiter einfach vollständig verborgen.

Die Inventarprüfung ist nicht schreibgeschützt

Die Live-Inventaransicht, die durch die Inventarprüfung geöffnet wird, ist auf Gegenstandsebene nicht auf reines Anschauen beschränkt, da Mitarbeitern vertraut wird.

Actionbar-Erinnerung

Während er versteckt ist, wird eine kleine dauerhafte Nachricht, die besagt, dass der Mitarbeiter im Vanish ist, direkt über seiner Hotbar gezeigt und aktuell gehalten. Das verhindert den häufigen Fehler, dass ein Mitarbeiter vergisst, dass er unsichtbar ist, und handelt, als könnten andere Spieler ihn sehen. Nur versteckte Spieler sehen diese Erinnerung. Sie wird durch den actionbar-Schalter gesteuert.

Funktionsschalter

Jeder oben stehende Teil von Vanish kann für sich ein- oder ausgeschaltet werden, ohne die gesamte Komponente zu deaktivieren. Die Schalter befinden sich unter vanish.features in der config.yml, und jeder ist standardmäßig an. Setze vanish.enabled auf false, um die Komponente vollständig zu deaktivieren.

vanish:
  enabled: true
  features:
    fake.message: true
    actionbar: true
    self.view: true
    fly: true
    invulnerability: true
    effects: true
    gamemode: true
    ride.entity: true
    silent.container: true
    inventory.inspect: true
    server.ping: true
    ghost: true
    prevent.chat: true
    prevent.pickup: true
    prevent.drop: true
    prevent.interact: true
    prevent.block.break: true
    prevent.block.place: true
    prevent.target: true
    prevent.damage: true
    prevent.food: true
    prevent.buckets: true
    prevent.advancement: true
    prevent.projectiles: true
    muffle.sounds: true
    muffle.particles: true
Schlüssel Steuert
fake.message Die gefälschte Verlassensnachricht, wenn ein Mitarbeiter sich versteckt, sowie versteckte Beitritts- oder Verlassensnachrichten.
actionbar Die Bildschirmerinnerung über der Hotbar, dass man im Vanish ist.
self.view Das durchscheinende Aussehen des eigenen Körpers des Mitarbeiters auf seinem eigenen Bildschirm.
fly Flug, während versteckt, wenn der Mitarbeiter auch verite.vanish.fly besitzt.
invulnerability Schadensimmunität, während versteckt, wenn der Mitarbeiter auch verite.vanish.invulnerable besitzt.
effects Der Nachtsichteffekt, wenn der Mitarbeiter auch verite.vanish.effects besitzt.
gamemode Die Doppel-Schleich-Zuschauerumschaltung.
ride.entity Das Entfernen eines versteckten Mitarbeiters aus einem Fahrzeug, das ein anderer Spieler zu besteigen versucht.
silent.container Das Öffnen von Behältern ohne Animation, Geräusch oder Öffnungszähler.
inventory.inspect Schleichen-Rechtsklick, um das Inventar eines anderen Spielers anzusehen.
server.ping Das Verbergen versteckter Mitarbeiter vom Serverlisten-Ping.
ghost Die durchscheinende Zuschauerüberlagerung für Betrachter, die den Mitarbeiter sehen dürfen.
prevent.chat Das Halten des Chats eines versteckten Mitarbeiters, sodass er nur für Mitarbeiter sichtbar ist, die ihn sehen dürfen.
prevent.pickup Das Blockieren des Aufhebens von Gegenständen.
prevent.drop Das Blockieren des Fallenlassens von Gegenständen.
prevent.interact Das Blockieren von Druckplatten und Stolperdrähten.
prevent.block.break Das Blockieren des Blockabbaus.
prevent.block.place Das Blockieren des Blockplatzierens.
prevent.target Das Verhindern, dass Monster den Mitarbeiter anvisieren.
prevent.damage Das Verhindern, dass der Mitarbeiter Schaden nimmt oder verursacht.
prevent.food Das Halten des Hungers vom Abnehmen und der Luftleiste voll.
prevent.buckets Das Blockieren des Füllens und Leerens von Eimern.
prevent.advancement Das Unterdrücken von Fortschrittsankündigungen.
prevent.projectiles Das Blockieren von Projektilabschüssen.
muffle.sounds Das Verwerfen positionierter Geräusche vom Standort des Mitarbeiters für Spieler, die ihn nicht sehen dürfen.
muffle.particles Das Verwerfen von Partikeln vom Standort des Mitarbeiters für Spieler, die ihn nicht sehen dürfen.

Hunger und Luft teilen sich einen Schalter

Sowohl das Abnehmen des Hungers als auch die Luftleiste unter Wasser werden vom einzigen prevent.food-Schalter gehalten.

PlaceholderAPI-Platzhalter

Wenn PlaceholderAPI installiert ist, kann der Vanish-Zustand ohne Code aus Tab-Listen, Anzeigetafeln und Chat-Konfigurationen gelesen werden, unter der Kennung verite.

Platzhalter Wert
%verite_vanished% true oder false, ob der abgefragte Spieler gerade versteckt ist.
%verite_vanish_count% Die Anzahl der derzeit versteckten Spieler.

Wenn PlaceholderAPI nicht installiert ist, existieren diese Platzhalter einfach nicht und nichts anderes ist betroffen.

TAB-Tabellenlisten-Integration

In der Vanilla-Tabliste wird ein versteckter Mitarbeiter für alle, die ihn nicht sehen dürfen, bereits aus der Liste entfernt, da Verité ihn über die Standard-Sichtbarkeitsbehandlung versteckt. Das beliebte Plugin TAB baut die Tabliste jedoch selbst neu auf und würde den versteckten Mitarbeiter andernfalls wieder hinzufügen. Wenn TAB installiert ist, registriert sich Verité bei der eigenen Vanish-Integration von TAB, sodass TAB mitgeteilt wird, welche Spieler versteckt sind und welche Betrachter sie sehen dürfen, und TAB hält seine Tabliste im Einklang mit dem Vanish. Es ist keine Konfiguration erforderlich; die Integration wird automatisch registriert, wenn TAB vorhanden ist, und tut nichts, wenn es fehlt. Ältere TAB-Versionen, die diese Integration nicht bereitstellen, werden übersprungen, wobei TAB versteckte Mitarbeiter in seiner Tabliste anzeigen kann, bis es aktualisiert wird.

Für Entwickler

Vanish stellt zwei Wege bereit, wie ein anderes Plugin auf Änderungen des Vanish-Zustands reagieren kann:

  • Ein abbrechbares Ereignis, das ausgelöst wird, bevor sich der Vanish-Zustand eines Spielers ändert, sodass ein Plugin einen Vanish oder Unvanish untersagen kann (zum Beispiel das Verweigern von Vanish in einer bestimmten Welt).
  • Ein leichtgewichtiger Callback, der sofort nach einer Änderung des Vanish-Zustands ausgelöst wird, für Plugins, die nur benachrichtigt werden müssen, wenn es geschieht.

Für die öffentliche Entwickleroberfläche siehe die Entwickler-API.