• 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!

Allen Spielern aus einer HashMap mit einem bestimmten String eine Nachricht schicken

Bamba675

Minecrafter
Registriert
19 April 2015
Beiträge
7
Alter
38
Diamanten
300
Meine HashMap:

public static HashMap<Player, String> all = new HashMap<Player, String>();

Wie kann ich allen Spielern mit dem String eine Nachricht schicken? Und wie kann ich herausfinden welchen String ein Spieler hat?
Lg Bamba675
 
Zuletzt bearbeitet:

Baba43

Ehem. Teammitglied
Ehem. Teammitglied
Registriert
5 November 2012
Beiträge
869
Diamanten
60
Minecraft
baba43

Baba43

Ehem. Teammitglied
Ehem. Teammitglied
Registriert
5 November 2012
Beiträge
869
Diamanten
60
Minecraft
baba43
Wo steht denn, dass sie das tut? Wie bist du darauf bekommen?

Ich habe dir zwei Links gesendet. Hast du wenigstens einmal versucht, die zu lesen bzw. zu verstehen?

Kannst du etwas Englisch oder gar nicht? Falls ja, schau dir bitte insbesondere mal die Dokumentation der verfügbaren Methoden einer HashMap an. Als Anfänger mag man zwar nicht alles 100% verstehen, aber es sollte ausreichen, um herauszufinden, dass containsKey() einen boolean zurückgibt (so wie es der Name "enthältSchlüssel" auch vermuten lässt).
 
F

Figz

Guest
for(Player all : EventListener.all.containsKey("Test")) {
all.sendMessage("test");
}

Funktioniert aber net :/

Spätestens hier solltest du eine schöne Fehlermeldung bekommen undzwar schon von deiner IDE..
Eine der wichtigsten Dinge beim Programmieren ist LESEN und wie schon Baba43 angedeutet hat, tust du das nicht.

Aber da ich heute gut drauf bin und in meiner Mittagspause etwas langeweile habe:

HashMap<Player, String> all...

Der erste Wert vom Typ "Player" ist in deiner HashMap der Schlüssel. Somit kannst du nicht abfragen ob die HashMap einen Schlüssel "Test" beinhaltet.

Der zweite Wert vom Typ "String" ist dann der zugehörige Wert zum Schlüssel (Player)

Das heißt wenn du in deine Map etwas einfügst (z.B: all.put(Bamba675, "Test")

Hast du dort einen Eintrag mit dem Spieler Bamba675 und dem Wert "Test".

Wenn du nun abfragst ob ein bestimmer Schlüssel in dieser HashMap existiert (z.B: all.containsKey(Bamba675)) erhälst du einen boolschen Wert (True oder False). Dieser sagt dir lediglich OB diese HashMap eine Entry mit dem Schüssel "Bamba675" beinhaltet.

Um den Wert zu diesem Schlüssel zu erhalten musst du die Methode HashMap#get(Object) verwenden.

Beispiel:

String value = all.get(Bamba675) => in Value steht nun "Test" drin.

Das heißt, wenn du nun wissen willst, in welchem deines Entries "Test" als Wert drin steht, musst du über deine HashMap iterieren.

Dies kannst du mit einer erweiterten for-Schleife machen:

for(Map.Entry<Player, String> entry : all.entrySet())
{
// Hier deine Prüfung..
Einige Methoden die du dafür benötigst stehen hier: https://docs.oracle.com/javase/7/docs/api/java/util/Map.Entry.html
(Ja alles werde ich dir nicht in den Mund legen)
}


Natürlich kannst du jetzt nicht einfach Bamba675 an den Stellen verwende, wo ich es getan habe. Du musst das Bamba675 durch ein gültiges Player-Object austauschen..

Das war jetzt nur eine grobe Erklärung. Jedoch solltest du jetzt wirklich ALLE Informationen erhalten haben um dein Vorhaben umsetzten zu können.

Ich dachte die sendet alle die den String "Test" haben die Nachricht "test"
Wenn das so einfach wäre, wozu bräuchte man dann noch Entwickler..?
 
Oben