• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Minecraft Plugin PlayerHider Hilfe-playerhide

Status
Für weitere Antworten geschlossen.

ArneXD123

Minecrafter
Registriert
25 Oktober 2017
Beiträge
1
Alter
26
Diamanten
300
Hey, ich habe ein PlayerHider Plugin programmiert los geht's:

Javascript:
if (!(Main.Hide.contains(p.getName()))) {
Main.Hide.add(p.getName());
p.sendMessage("§8[§cPlayerHider§8] §eDu siehst nun keine Spieler mehr.");
for (Player players : Bukkit.getOnlinePlayers()) {
p.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 35, 1));
p.hidePlayer(players);
players.hidePlayer(p);
e.setCancelled(true);
}
} else if (Main.Hide.contains(p.getName())) {
Main.Hide.remove(p.getName());

p.sendMessage("§8[§cPlayerHider§8] §eDu siehst nun alle Spieler.");
for (Player players : Bukkit.getOnlinePlayers()) {
p.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 35, 1));
p.showPlayer(players);
players.showPlayer(p);
p.hidePlayer(p);
e.setCancelled(true);

Nun die Frage (3Spieler) wenn 2 Spieler den Hider aktiviert haben und einer den Modus deaktiviert, werden für den jenigen der den deaktiviert hat alle Spieler angezeigt, für den der den Modus noch Aktiviert hat, Der den ihn deaktiviert hat und er selbst & für den 3. der den Modus gar nicht hatte, Der den ihn deaktiviert hat & er selbst.

Jetzt zur richtigen Frage Was muss ich machen das der, der den Modus deaktiviert hat nur sich und den der auch den Modus aus hat sieht (und nicht zusätzlich den der den Modus aktiviert hat) Und 2. Was muss ich machen das der der den Modus noch aktiviert hat, den der, den Modus grade verlassen hat auch nicht sieht Brauche ich eine Arraylist oder so etwas in der Art?

Kurze Info ich habe eigl. nicht vor das programmieren zu lernen, da ich ein paar Kenntnisse von einem Freund hatte, habe ich es soweit geschafft.

Da ich das für ein kleines Projekt machen möchte.

Würde mich daher über eine Code-Lösung / Code-Zeile freuen die das Löst.

Code ist auch eventuell nicht der Beste

(Bitte keine Kommentare: Dann lern doch programmieren/Java, dies habe ich ja nicht vor (1Malige Sache))

Mfg Arne
 
F

Figz

Guest
Im Grunde genommen brauchst du dafür nicht mehr java kenntnisse, als die funktionisweise einer if-abfrage und eben eine gewisse logik dafür.

Außerdem empfehle ich dir, dass du in einer Liste keine Spieler namen speicherst, sondern die Spielerreferenz, also List<Player>
 
Zuletzt bearbeitet von einem Moderator:

KillawOrCarel

Kuhfänger
Registriert
15 Juli 2017
Beiträge
78
Diamanten
1
Außerdem empfehle ich dir, dass du in einer Liste keine Spieler namen speicherst, sondern die Spielerreferenz, also List<Player>

Wenn man schon in diversen Beiträgen auf "oberguru" tut, jedoch selbst offensichtlich kaum Ahnung von der Materie hat, ist das schon fast ein gewisses Armutszeugnis.

Der Rest des Beitrages ist genauso für die Frage irrelevant.

Im generellen immer UUID referenzen speichern wenn man nicht weiß warum Player Instanzen ein Problem sind.*

- - - - - -

Eines vorab: Wer nicht programmieren kann, hat ersteinmal grundlegend pech gehabt. Die Attitüde "macht mal" ist eine Unverschämtheit. Wenn der "Freund" hier geholfen hat soll er es eben zuende machen.

Das Problem beginnt aber schon bei den Anforderungen. Derzeitig werden Spieler ohne Bedingungen versteckt. Wenn die Bedingungen klar währen gäbe es das Problem nicht. Bei jedem verstecken eines Spielers muss halt eben verschieden reagiert werden.

Die Bedingungen, welche gewünscht werden, sind bereits Teil des angegebenen Source Code. Ansonsten Lösung wie oben: Den Freund fragen von dem ja eh alles kopiert wurde.

- - - - - -

* https://www.spigotmc.org/threads/storing-references-in-a-custom-player.69823/#post-779276
 
Zuletzt bearbeitet:
F

Figz

Guest
Wenn man schon in diversen Beiträgen auf "oberguru" tut, jedoch selbst offensichtlich kaum Ahnung von der Materie hat, ist das schon fast ein gewisses Armutszeugnis.

Der Rest des Beitrages ist genauso für die Frage irrelevant.

Im generellen immer UUID referenzen speichern wenn man nicht weiß warum Player Instanzen ein Problem sind.

Dann erklär du es mir doch bitte, wenn du es so gut weißt :)
So einen Spruch raushauen aber dann keine Erklärung dahinter?

EDIT:
*Applaus* Hast du den Thread rausgesucht, nachdem du deine Antwort verfasst hast?
Warst du plötzlich doch verunsichert und hast schnell nach einer Antwort gesucht?

Erklär mir mit deinen eigenen Worte, warum es besser SEI die UUID zu verwenden und speise mich nicht mit so einem dummen Link ab, der in der Abstimmung MEINE Aussage unterstreicht.

Mit welchen Problemen hat man zu rechnen??
 
Zuletzt bearbeitet von einem Moderator:

BlackHole

Workaholic
Registriert
1 Juli 2012
Beiträge
752
Diamanten
0
Minecraft
BlackHole
Ein ganz offensichtlicher Grund ist dass das Spieler-Objekt und alle davon abhängigen Objekte im Speicher verbleiben, wenn der Spieler in so einer Datenstruktur gespeichert bleibt, wenn er offline geht.
 
F

Figz

Guest
Ein guter Programmierer räumt seinen Müll weg egal ob Player oder uuid

Es gibt, wenn man sich daran hält sogar viele Vorteile gegenüber der Speicherung der uuid. Es wird um einiges performanter wenn man später wieder da Player objekt braucht
 
F

Figz

Guest
Man möchte aber evtl. dass der Spieler nach einem Relog immer noch unsichtbar ist?

Ich dachte es geht mittlerweile um die allgemeinen Verwendung von uuid und Player Referenzen?

Und selbst dann ist es sinnvoller diese Daten in einer anderen Struktur (Datenbank) zu speichern, da dieese nach einem Server Neustart sowieso verloren gehen würden (ausser man serialisiert die Daten Blabla) ist aber im Nachhinein weder speichereffizienter und auch nicht performanter
 
Status
Für weitere Antworten geschlossen.
Oben