Sie sind nicht angemeldet.

  • Anmelden

Lieber Besucher, herzlich willkommen bei: Nitrado.net Prepaid Gameserver Community-Support. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

ItsTheJango

User / Kunde

  • »ItsTheJango« ist der Autor dieses Themas

Beiträge: 91

  • Nachricht senden

1

Sonntag, 6. März 2016, 12:45

Items aus Inventar entfernen

Hey Leute,

Ich programmiere gerade ein SkyPvP Shop-Inventory, bei dem, wenn man auf ein Item klickt, eine bestimmte Anzahl eines bestimmten Items aus dem Spieler-Inventar entfernt wird, und er das Item bekommt.
Meine Frage wäre wie ich es schaffe, dass dem Spieler die Itemanzahl abgezogen wird.


Habe es so versucht, ging 1mal, dann ging es nicht mehr:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public static void checkForItem(Player p, int amount, ItemStack clickedItem){
		
		ItemStack[] items = p.getInventory().getContents();
		boolean suc = false;
		
		for(ItemStack item : items){
            if(item.getType() != Material.GOLD_NUGGET){
                continue;
            }
            if(!(item.getAmount() >= amount)){
                continue;
            }
            if(item.getAmount() == amount){
            	p.getInventory().remove(item);
            	p.getInventory().addItem(clickedItem);
            	p.updateInventory();
            	suc = true;
            }else if(item.getAmount() > amount){
            	item.setAmount(item.getAmount() - amount);
            	p.getInventory().addItem(clickedItem);
            	p.updateInventory();
            	suc = true;
            	break;
            }
            break;
        }
		if(suc == false){
			p.closeInventory();
        	p.sendMessage(Main.pre + "§cDu hast nicht genüg Coins dafür!");
		}
		
	}


Danke schonmal für eure Antworten,
LG Jango :)

Koopa03

User / Kunde

  • »Koopa03« ist männlich

Beiträge: 105

  • Nachricht senden

2

Sonntag, 6. März 2016, 14:22

Zuerst erstellst du ein ItemStack:

ItemStack item = New ItemStack(Materials.EMERALD);

Entfernen tust Du es dann so:
p.getInventory.removeItem(item);