Frage von panakotta00, 46

Entity Spawnen und Abspeichern?

Hi leute, ich wollte mal Fragen wie ich ein Entity spawnen kann und dann einspeichen. Also so ähnlich bzw. Die gleiche funktions weise währe toll: Entity e = p.getLocation ().spawnEntity (p.getLocation (), EntityType.ZOMBIE); Also das funktioniert nicht, habt ihr fileiiht eine idee?

Antwort
von Xearox, 46

Wo willste es abspeichern? Also Variable oder in ein File bzw. Datenbank?

Antwort
von panakotta00, 44

Ich wollte es als Variable Abspeichern und dann in eine ArrrayList<Entity> geben oder sofort in die ArrayList. Ich muss halt das Entity später wieder verwenden können.

Kommentar von Xearox ,

Sooo...Also dann machst du folgendes und wehe ich bekomme keine Danke dafür, dann hau ich dich... :D

Du machst einen Record, gut in Java gibt es sowas eigentlich nicht, kenne aus Delphi und arbeite immer damit bei solchen Sachen.

Du baust dir eine Liste von Variablen zusammen von Unterschiedlichen Typen.

Hier ein Beispiel, das kannst du dann ganz easy Umsetzen. Wir gehen davon aus, du willst eine Person in einer Liste speichern. Diese Liste soll den Namen der Person, eine Index ID, das Geburtsdatum und vielleicht auch noch eine eMail Adresse enthalten.

Da es in Java kein Record wie in Delphi oder keine Structure wie in C++ gibt, müssen wir hier mit einer Class arbeiten. Die erstellst du so.

class Person{
  String name;
  int id_number;
  Date brithday;
  String email;
}

Nun haben wir eine Class namens Person.

Wir erstellen nun eine ArrayList.

ArrayList <Person> People = new ArrayList<Person>();

Wir haben nun eine Array Liste erstellt und diese People genannt.

Nun erstellen wir eine Methode, mit dieser kannst du dann ganz einfach weitere Personen hinzufügen.

public void addPerson(String pName, int pID, Date pDate, String pEmail){
  Person newPerson = new Person();
  newPerson.name = pName;
  newPerson.id_number = pID;
  newPerson.birthday = pDate;
  newPerson.email = pEmail;
  People.add(newPerson);

Mit:

People.add(newPerson);

fügen wir die neue Person zur Liste People hinzu.

Um nun eine Person zu finden, machst du folgendes:

public Object findPerson(String a){
  for (int i=0; i <People.size(); i++){
    if (People.get(i).name.equals(a)){
      return "Person gefunden";
    }
  }
  return "Person nicht gefunden";
}

Also wir erstellen hier ein Object namens findPerson. Wir packen Argumente hinten dran, also den Namen einer Person. Machen eine For-Schleife in der wir nun Abfragen, ob die Person gefunden wurde. Ist eine Person gefunden worden, springt er aus der for Schleife raus und gibt dir ein return zurück. Du kannst natürlich statt ein Object dir zurück geben lassen auch ein Boolean Wert oder ähnliches.

Ich würde dir im Fall und Entities empfehlen, das du eine UUID denen gibst. Das kennst du ja von den Usernames. Wenn in meinen Plugins ein User z.B. irgendwas spezielles Baut, z.B. ein Schild damit andere User damit interagieren können, z.B. um was dran zu verkaufen, erstelle ich aus PosX, PosY, PosZ und PosWorld einen MD5 Hash und verwende diesen nun als UUID für das Platzierte Schild. Wenn nun ein User halt auf das Schild klickt, brauche ich nur noch nach der UUID zu suchen, anstatt nach den Positionen, erspart einiges an schreib Arbeit.


Wenn du weitere Fragen haben solltest, kann du dich gerne an mich wenden. Stelle mir hierfür einfach eine Freundesanfrage und ich erkläre es dir dann nochmal in Ruhe.

Wie bereits oben erwähnt. Wenn dir das geholfen hat, so bitte ich dich, meine Antwort Positiv zu bewerten und als Hilfreichste Antwort zu deklarieren.

Vielen Dank =)


Liebe Grüße Xearox


p.s. Wenn irgendwas nicht funktionieren sollte, dann google einfach mal ArrayList oder Java Records. Oder frag einfach hier nochmal oder mich direkt ;-)

Kommentar von MinecraftNoob ,

Klasse, genau das hab ich gesucht. DANKE!!!!

Kommentar von panakotta00 ,

Ja, das kann ich dan für zukünftige Projekte verwenden. Aber das problem ist, dass wenn ich ein Entity Spawne, weis ich nicht wie ich die daten (oder das Entity) in die Variable speicher den die Funkton ist (so weit wie ich weis) void!

Keine passende Antwort gefunden?

Fragen Sie die Community