BungeeCord Inventare auf jedem Server gleich

Wenn ihr bei eurem Plugin nicht weiter kommt, könnt ihr hier euer Problem beschreiben und um Hilfe bitten.

BungeeCord Inventare auf jedem Server gleich

Beitragvon VooxoPlay » Mi 13. Apr 2016, 13:31

Hallo, ich wollte fragen ob mir jemand erklären kann wie ich ein Inventar(mit Rüstung) in MySQL 1 zu 1 abspeichern kann und wieder aufrufen kann? Bräuchte es um auf allen Servern das gleiche Inventar zu haben.

Mit freundlichen Grüßen

VooxoPlay - Thomas
Benutzeravatar
VooxoPlay
 
Beiträge: 9
Registriert: Fr 7. Aug 2015, 12:06

Re: BungeeCord Inventare auf jedem Server gleich

Beitragvon Letsplaybar » Mi 13. Apr 2016, 14:25

In dem du dir das material als string speicherst und diesen wiederum aufrufst. Also Bsp. So:
Code: Alles auswählen
  1. public String giveInventory(Player p){
  2.      String inv ="";
  3.      for (ItemStack is : p.getInventory().getContents())
  4.         inv = inv+is.getType().toString()+"_"+is.getData()+"_"+is.getAmount()+";";
  5.      return inv;
  6.   }

und so bekommst du dann die Itemstacks wieder raus:
Code: Alles auswählen
  1. public ItemStack[] getInventory(String inv){
  2.      String[] invs = inv.split(";");
  3.      ItemStack[] is = new ItemStack[invs.length];
  4.     
  5.      for(int i = 0; i<inv.length(); i++){
  6.         String[] itemdata = invs[i].split("_");
  7.         String material = itemdata[0];
  8.         byte data = Byte.parseByte(itemdata[1]);
  9.         int amount = Integer.parseInt(itemdata[2]);
  10.         ItemStack in = new ItemStack(Material.getMaterial(material),amount,data);
  11.         is[i]=in;
  12.      }
  13.      return is;
  14.   }
Bild
Helfe Wo ich kann.
Mein MinecraftServer: Letsplaybaro.de - Suchen Developer/Bilder

I hacked 127.0.0.1!!! :)
Benutzeravatar
Letsplaybar
 
Beiträge: 195
Registriert: Mo 1. Feb 2016, 17:21
Wohnort: Berlin

Re: BungeeCord Inventare auf jedem Server gleich

Beitragvon VooxoPlay » Mi 13. Apr 2016, 18:36

Danke erstmal, ich werds danach mal testen
Benutzeravatar
VooxoPlay
 
Beiträge: 9
Registriert: Fr 7. Aug 2015, 12:06

Re: BungeeCord Inventare auf jedem Server gleich

Beitragvon Letsplaybar » Mi 13. Apr 2016, 21:17

ach ja für die Amor muss dann noch p.getInventory().getAmorContents(); statt nur getContents(); un das Speicherst du einfach als 2. Strin in die MySQL tabbele Rüssi und den Ersten als bsp. Inventar.
Bild
Helfe Wo ich kann.
Mein MinecraftServer: Letsplaybaro.de - Suchen Developer/Bilder

I hacked 127.0.0.1!!! :)
Benutzeravatar
Letsplaybar
 
Beiträge: 195
Registriert: Mo 1. Feb 2016, 17:21
Wohnort: Berlin

Re: BungeeCord Inventare auf jedem Server gleich

Beitragvon VooxoPlay » So 17. Apr 2016, 07:04

Ich hab noch eine Frage zu der Abspeichermethode von dir Letsplaybar, diese wäre: Wo speicherst du denn den Slot des Items ab? Also ich hab auf dem letzen also in der Hotbar ein item, wie bekommt man da den Slot.
Benutzeravatar
VooxoPlay
 
Beiträge: 9
Registriert: Fr 7. Aug 2015, 12:06

Re: BungeeCord Inventare auf jedem Server gleich

Beitragvon Letsplaybar » So 17. Apr 2016, 14:45

dann musst du in den String halt noch den Slot abspeichern.
Code: Alles auswählen
  1. public String giveInventory(Player p){
  2.      String inv ="";
  3.      for (int i=0; i<36;i++){
  4.            ItemStack is = p.getInventory().getItem(i);
  5.            if(is != null){
  6.              inv = inv+is.getType().toString()+"_"+is.getData()+"_"+is.getAmount()+"_"+i+";";
  7.            }
  8.          }
  9.   }


und zum abrufen:
Code: Alles auswählen
  1. public void setInventory(String inv, Player p){
  2.      String[] invs = inv.split(";");
  3.      for(int i = 0; i<inv.length(); i++){
  4.         String[] itemdata = invs[i].split("_");
  5.         String material = itemdata[0];
  6.         byte data = Byte.parseByte(itemdata[1]);
  7.         int amount = Integer.parseInt(itemdata[2]);
  8.         int slot = Integer.parseInt(itemdata[3]);
  9.         ItemStack in = new ItemStack(Material.getMaterial(material),amount,data);
  10.        p.getInventory().setItem(i, in);
  11.      }
  12.   }

dann ist auch der slot gleich
Bild
Helfe Wo ich kann.
Mein MinecraftServer: Letsplaybaro.de - Suchen Developer/Bilder

I hacked 127.0.0.1!!! :)
Benutzeravatar
Letsplaybar
 
Beiträge: 195
Registriert: Mo 1. Feb 2016, 17:21
Wohnort: Berlin


Zurück zu Hilfe und Support

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 11 Gäste

cron