You are not logged in.

  • Login
Bitte besucht unser neues Forum unter https://forum.nitrado.net | Please visit our new Forum at https://forum.nitrado.net

ByNetherdude

User / Kunde

  • "ByNetherdude" is male
  • "ByNetherdude" started this thread

Posts: 14

Occupation: Schüler

  • Send private message

1

Wednesday, February 21st 2018, 11:31am

Von mehreren Spielern Items abspeichern?

Hey Leute, ich bin mal wieder ;)

Man kann ja einer Hashmap und dem Codeschnipsel

Source code

1
 Hashmapname.put(p.getName(), p.getInventory().getContents())
Items speichern und sie mit

Source code

1
ItemStack [] Contents = Hashmapname.get(p.getName());    p.getInventory.setContents(Contents);
wieder abrufen. Wenn ich das aber mit mehreren Spielern aus einer Arraylist via for-Schleife machen will, bekommen alle dieselben Items, und das sind die EINES Spieler, jeder soll aber seine wiederbekommen.

Wie geht das, ich krieg's nicht hin.

Mit freundlichen Grüßen
ByNetherdude

Quellcode

1
Du brauchst ein Plugin? Adde mich auf Skype: "DevStation Minecraft Plugins"

xtrumb

User / Kunde

  • "xtrumb" is male

Posts: 2,295

Location: hier

Occupation: Fachinformatiker für Systemintegration

Thanks: 16

  • Send private message

2

Wednesday, February 21st 2018, 12:50pm

for(Player all : Bukkit.getOnlinePlayers())
Mit freundlichen Grüßen
TrueMB

Dienstleistungs Service
Unser Csgo Team

Stuppsman

User / Kunde

Posts: 2,766

Thanks: 25

  • Send private message

3

Wednesday, February 21st 2018, 2:54pm

Wie haste es denn versucht?
Nein, ich hab kein Skype.. bei Interesse an einer privaten Unterrichtsstunde, wende dich bitte direkt an mein Team! 8)

ByNetherdude

User / Kunde

  • "ByNetherdude" is male
  • "ByNetherdude" started this thread

Posts: 14

Occupation: Schüler

  • Send private message

4

Wednesday, February 21st 2018, 6:12pm

@xtrumb ich möchte aber nur die, die in der Arraylist sind. Mir ist klar, dass das mit einer for-Schleife so geht, aber so bekommt halt nicht jeder seine eigenen Items, sondern die des ersten Spielers, der in der for-Schleife ist.
Bisher versucht habe ich es mit dem Codeschnipsel vom ersten Beitrag plus for-Schleife:

Source code

1
2
3
4
		for(Player all : Main.Jump) {
				all.sendMessage(Main.Prefix + "Der Spieler §e" + p.getName() + " §7hat gewonnen! Du wirst nun zurück teleportiert!");
				all.teleport(Main.m.getPrivateBefore(all)); 
				all.getInventory().setContents(Contents);
Da bekommt aber, wie oben angemerkt jeder nur die Items des Spielers, der am ersten in der Arraylist war und dessen Items registriert wurde. Ich möchte aber, dass jeder seine eigenen wieder bekommt. Das war auch meine Ausgangsfrage.

Mit freundlichen Grüßen
ByNetherdude

Quellcode

1
Du brauchst ein Plugin? Adde mich auf Skype: "DevStation Minecraft Plugins"

xtrumb

User / Kunde

  • "xtrumb" is male

Posts: 2,295

Location: hier

Occupation: Fachinformatiker für Systemintegration

Thanks: 16

  • Send private message

5

Wednesday, February 21st 2018, 9:34pm

was ist denn Main.jump? Ansonsten gehe die Liste doch mit einem integer durch die size
Mit freundlichen Grüßen
TrueMB

Dienstleistungs Service
Unser Csgo Team

Stuppsman

User / Kunde

Posts: 2,766

Thanks: 25

  • Send private message

6

Thursday, February 22nd 2018, 12:19am

Du musst dir die contents auch in der Schleife aus der HashMap holen.. das machst du anscheinend vorher. ^^
Nein, ich hab kein Skype.. bei Interesse an einer privaten Unterrichtsstunde, wende dich bitte direkt an mein Team! 8)

xMarzl

User / Kunde

  • "xMarzl" is male

Posts: 121

Location: xMarzl.getLocation();

Occupation: Azubi

  • Send private message

7

Thursday, February 22nd 2018, 9:29am

PHP Source code

1
  public HashMap<UUIDItemStack[]> contents = new HashMap<UUIDItemStack[]>;



PHP Source code

1
2
3
    for(Player target:Bukkit.getOnlinePlayers())
        if(contents.contains(target.getUnquieID)
            target.getInventory().setContents(contents);
Bei Fragen kannst du mich gern privat anschreiben .

ByNetherdude

User / Kunde

  • "ByNetherdude" is male
  • "ByNetherdude" started this thread

Posts: 14

Occupation: Schüler

  • Send private message

8

Thursday, February 22nd 2018, 2:07pm

@Stuppsmann Ich weiss leider nicht, wie das geht bzw wie du das meinst.

@xMarzl Das habe ich versucht, allerdings wird

Source code

1
 	p.getInventory().setContents(contents);
immer als falsch angezeigt und er sagt mir, dass ich den Type von contents auf Itemstack umändern soll. Was mache ich falsch? Hier mal mein bisheriger Code dazu:

Source code

1
2
3
4
5
6
7
 			//HASHMAP
    			
    		    if(contents.containsKey(p.getUniqueId())) {
    		    	p.getInventory().setContents(contents);
    		    }
    		    
    		    //HASHMAP//


@xtruMB Die Main.Jump ist meiner Arraylist wo alle Spieler, die dort drin sind die Items gesaftet bekommen sollen.

Mit freundlichen Grüßen
ByNetherdude

Quellcode

1
Du brauchst ein Plugin? Adde mich auf Skype: "DevStation Minecraft Plugins"

xtrumb

User / Kunde

  • "xtrumb" is male

Posts: 2,295

Location: hier

Occupation: Fachinformatiker für Systemintegration

Thanks: 16

  • Send private message

9

Thursday, February 22nd 2018, 3:42pm

Er meint:

Java source code

1
2
3
4
5
		for(Player all : Main.Jump) {
                                Itemstack[] Contents = hash.get(all.getName());
				all.sendMessage(Main.Prefix + "Der Spieler §e" + p.getName() + " §7hat gewonnen! Du wirst nun zurück teleportiert!");
				all.teleport(Main.m.getPrivateBefore(all)); 
				all.getInventory().setContents(Contents);
Mit freundlichen Grüßen
TrueMB

Dienstleistungs Service
Unser Csgo Team

ByNetherdude

User / Kunde

  • "ByNetherdude" is male
  • "ByNetherdude" started this thread

Posts: 14

Occupation: Schüler

  • Send private message

10

Friday, February 23rd 2018, 9:00am

Hat funktioniert, vielen Dank!

Quellcode

1
Du brauchst ein Plugin? Adde mich auf Skype: "DevStation Minecraft Plugins"

Bitte besucht unser neues Forum unter https://forum.nitrado.net| Please visit our new Forum at https://forum.nitrado.net