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

Dear visitor, welcome to Nitrado.net Prepaid Gameserver Community-Support - Archiv. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

Sebi_Zocer

User / Kunde

  • "Sebi_Zocer" is male
  • "Sebi_Zocer" started this thread

Posts: 229

Location: Privat

Occupation: Privat

  • Send private message

1

Thursday, November 8th 2018, 7:34pm

Amount von Items im Inventar wird nicht geändert

Hi leude,
wenn ich ein Inv schließe, soll man die Items, die man ins Inv gelegt hat, zurückbekommen. Das will aber nicht so ganz. Der Amount vom Item wird IM CODE gesetzt, aber in Minecraft nur selten wirklich gesetzt.

Code:

Spoiler Spoiler

Java source code

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
33
34
35
	public void addItem(ItemStack is){
		int amount = is.getAmount();
		for(int i1 = 0; i1 < 36; i1++){
			sendMessage("" + i1);
			ItemStack iss = p.getInventory().getItem(i1);
			if(iss != null){
				if(iss.getType().equals(is.getType()) && iss.getDurability() == is.getDurability()){
					sendMessage("same §6" + i1);
					if(iss.getAmount() < iss.getMaxStackSize()){
						int puffer = iss.getMaxStackSize() - iss.getAmount();
						if(puffer >= amount){
							sendMessage("filled at §6" + (i1+1) + "§7: started at §6" + iss.getAmount() + " §7added §6" + amount + " §7and is finally §6" + (iss.getAmount()+amount));
							p.getInventory().getItem(i1).setAmount(iss.getAmount() + amount);
							p.updateInventory();
							return;
						} else {
							p.getInventory().getItem(i1).setAmount(iss.getMaxStackSize());
							amount = amount - puffer;
						}
					}
				}
			} else {
				is.setAmount(amount);
				p.getInventory().addItem(is);
				p.updateInventory();
				return;
			}
		}
		
		if(amount > 0){
			is.setAmount(amount);
			p.getWorld().dropItem(p.getLocation(), is);
		}
		p.updateInventory();
	}


Ich hab mal über nen Command den Amount von nem Item neu gesetzt und da hat es geklappt. BTW. werden die Debug-Messages aus dem Code auch ausgegeben und sind auch richtig so, aber Minecraft zeigt es nicht.

Ich würde mich über Hilfe freuen.

Edit: Ich habe es nun gelöst, indem ich 1 Tick später

Java source code

1
p.updateInventory();
genutzt habe. Bescheuert, aber egal :miffy:

This post has been edited 1 times, last edit by "Sebi_Zocer" (Nov 8th 2018, 7:46pm) with the following reason: Fehler behoben


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