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

Trouble in MineVille Plugin: HashMaps Probleme

djslin99

Minecrafter
Registriert
3 Januar 2013
Beiträge
5
Diamanten
0
Minecraft
djslin99
Hallo,
ich bin dabei ein Trouble in MineVille Plugin zu programmieren.
Ich habe nur ein Problem mit der Hashmap.
Wenn ich die Spieler Nummer in der Konsole ausgeben will, steht null da. Woran liegt es?
Vielen Dank im voraus,
djslin99


CODE: http://pastebin.com/b0Qk7KH1
 
X

|| xX [DEV][LP] Ms. DivaCraft Xx ||

Guest
Du kannst schonmal anfangen die Player Objekte aus der HashMap zu entfernen und durch Strings zu ersetzen. Dann würde ich noch empfehlen Java zu lernen und dann erst ein Plugin zu schreiben.
 

djslin99

Minecrafter
Registriert
3 Januar 2013
Beiträge
5
Diamanten
0
Minecraft
djslin99
Zu MiCrJonas1997: Dieses Plugin soll nur als unterspiel auf dem Server laufen, wie z.B. Survivalgames, und bei MineTopia muss man soweit ich gesehen habe, den ganzen Server für "opfern" und genau das soll nicht sein.
Ich möchte auch ein wenig üben. Aber danke für die Antwort!

Zu manf: Wenn ich alle Spieler als string abspeicher, müsste ich sie danach immer wieder in Player umwandeln. Und man muss nicht gleich so unfreundlich sein! (Falls du die ganzen Kommentare, die ich habe als "für Anfänger" bezeichnet, stimme ich dir nicht zu, das macht alles übersichtlicher)

Zu MrFlieder: Als 1. Wert habe ich einen Integer und als 2. Wert Player. Unten habe ich beides ausprobiert (key und value) und beides geht nicht. Aber danke für die Antwort!


Mfg,
djslin99
 
X

|| xX [DEV][LP] Ms. DivaCraft Xx ||

Guest
Ich war an keiner stelle unfreundlich. Deine Kommentare sind auch vollkommen in Ordnung, auch wenn ich diese Ansicht nicht teile. Dennoch kann ich dir gerne mehrere Fehler aufzeigen.

Zum Beispiel:
// Normalerweise sind nach den Konventionen die Variablen nur für die Klasse selber, also private, deklariert.
public HashMap<Integer, Player> players = new HashMap<Integer, Player>();
// Redundant, da players.size() sich auf eine leere HashMap bezieht. Davon mal abgesehen, dass diese normal klein geschrieben wird am anfang.
int PlayerAnzahl = players.size();

Nun zum Grund warum man NICHT die Spieler speichert, sondern deren Namen:
Du verschwendest einfach unnötig viel Leistung, weil der GC ( Sollte dir als nicht Anfänger ja etwas sagen)
dieses Objekt nicht freigeben kann. Joint nun ein der gleiche Spieler erneut gibt es ein neues Player Objekt und so weiter und so fort.

Hier dein eigentlicher Fehler: get hohlt sich die Value über den Key nicht umgekehrt.
System.out.println(p.getName() + " hat die Nummer " + players.get(p));
 

LordGarmadonLP

Minecrafter
Registriert
15 August 2012
Beiträge
6
Diamanten
0
Ich war an keiner stelle unfreundlich. Deine Kommentare sind auch vollkommen in Ordnung, auch wenn ich diese Ansicht nicht teile. Dennoch kann ich dir gerne mehrere Fehler aufzeigen.

Zum Beispiel:
// Normalerweise sind nach den Konventionen die Variablen nur für die Klasse selber, also private, deklariert.
public HashMap<Integer, Player> players = new HashMap<Integer, Player>();
// Redundant, da players.size() sich auf eine leere HashMap bezieht. Davon mal abgesehen, dass diese normal klein geschrieben wird am anfang.
int PlayerAnzahl = players.size();

Nun zum Grund warum man NICHT die Spieler speichert, sondern deren Namen:
Du verschwendest einfach unnötig viel Leistung, weil der GC ( Sollte dir als nicht Anfänger ja etwas sagen)
dieses Objekt nicht freigeben kann. Joint nun ein der gleiche Spieler erneut gibt es ein neues Player Objekt und so weiter und so fort.

Hier dein eigentlicher Fehler: get hohlt sich die Value über den Key nicht umgekehrt.
System.out.println(p.getName() + " hat die Nummer " + players.get(p));

Manf er denkt halt anders als du xD
 
Oben