Moin,
habe folgendes Problem, und hoffe, dass ihr mir helfen könnt!
Das Konzept:
Ich möchte gerne mit einem Befehl, ein Inventar öffen, und in das Inventar alle Partikel inform von einem Netherstar in das Inventar setzen.
Wenn das Inventar voll ist, soll er aber beim 2ten Inventar weitermachen, die Partikel aufzuzählen. Insgesammt brauche ich also 3 Inventare, aufgrund der Anzahl der Partikel.
Mein Problem:
Ich weiß nicht, wie ich wenn das eine Inventar voll ist, beim anderen weitermachen soll.
Was ich versucht habe:
Die Partikel, die schon gesetzt worden sind, in eine ArrayList zu packen, und beim 2ten Inventar abfragen, ob die vorkommen.
Leider ohne Erfolg!
Ich gebe euch mal alles an Code, damit ihr vollständig aufgeklärt seit!
Danke im Vorraus für die Hilfe, und noch einen schönen Abend!
habe folgendes Problem, und hoffe, dass ihr mir helfen könnt!
Das Konzept:
Ich möchte gerne mit einem Befehl, ein Inventar öffen, und in das Inventar alle Partikel inform von einem Netherstar in das Inventar setzen.
Wenn das Inventar voll ist, soll er aber beim 2ten Inventar weitermachen, die Partikel aufzuzählen. Insgesammt brauche ich also 3 Inventare, aufgrund der Anzahl der Partikel.
Mein Problem:
Ich weiß nicht, wie ich wenn das eine Inventar voll ist, beim anderen weitermachen soll.
Was ich versucht habe:
Die Partikel, die schon gesetzt worden sind, in eine ArrayList zu packen, und beim 2ten Inventar abfragen, ob die vorkommen.
Leider ohne Erfolg!
Ich gebe euch mal alles an Code, damit ihr vollständig aufgeklärt seit!
Die Command-Klasse:
package de.devfelix.commands;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.Particle;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
public class SpawnParticleCommand implements CommandExecutor {
public static List<String> alreadyset = new ArrayList<String>();
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
File invdatafile = new File("plugins/Particle", "InvData.yml");
FileConfiguration invdata = YamlConfiguration.loadConfiguration(invdatafile);
Inventory particlemenu1 = Bukkit.createInventory(null, 9*6, "§8» §6Choose Particle! §8| §cSite 1");
if(sender instanceof Player) {
Player player = (Player)sender;
for (Particle particle : Particle.values()) {
ArrayList<String> particlelore = new ArrayList<String>();
particlelore.add(" ");
particlelore.add("§8» §6Click to Choose!");
ItemStack barrier = new ItemStack(Material.BARRIER, 1);
ItemStack glass = new ItemStack(Material.BLUE_STAINED_GLASS_PANE, 1);
ItemStack particleitem = new ItemStack(Material.NETHER_STAR, 1);
ItemStack arrow = new ItemStack(Material.OAK_SIGN, 1);
ItemMeta arrowmeta = arrow.getItemMeta();
ItemMeta glassmeta = glass.getItemMeta();
ItemMeta barriermeta = barrier.getItemMeta();
ItemMeta particlemeta = particleitem.getItemMeta();
arrowmeta.setDisplayName("§6Next Site §8| §c2");
barriermeta.setDisplayName("§4Exit");
glassmeta.setDisplayName(" ");
particlemeta.setDisplayName("§c" + particle.toString().replace("_", " "));
particlemeta.setLore(particlelore);
arrow.setItemMeta(arrowmeta);
glass.setItemMeta(glassmeta);
barrier.setItemMeta(barriermeta);
particleitem.setItemMeta(particlemeta);
invdata.set("Items." + particle.toString(), particleitem);
try {
invdata.save(invdatafile);
} catch (IOException e) {
e.printStackTrace();
}
ItemStack item = invdata.getItemStack("Items." + particle.toString());
particlemenu1.setItem(0, glass);
particlemenu1.setItem(1, glass);
particlemenu1.setItem(2, glass);
particlemenu1.setItem(3, glass);
particlemenu1.setItem(4, glass);
particlemenu1.setItem(5, glass);
particlemenu1.setItem(6, glass);
particlemenu1.setItem(7, glass);
particlemenu1.setItem(8, glass);
particlemenu1.setItem(9, glass);
particlemenu1.setItem(17, glass);
particlemenu1.setItem(18, glass);
particlemenu1.setItem(26, glass);
particlemenu1.setItem(27, glass);
particlemenu1.setItem(35, glass);
particlemenu1.setItem(36, glass);
particlemenu1.setItem(44, glass);
particlemenu1.setItem(45, glass);
particlemenu1.setItem(46, glass);
particlemenu1.setItem(47, glass);
particlemenu1.setItem(48, glass);
particlemenu1.setItem(49, glass);
particlemenu1.setItem(50, arrow);
particlemenu1.setItem(51, glass);
particlemenu1.setItem(52, glass);
particlemenu1.setItem(53, barrier);
player.sendMessage(particle.toString());
if(particlemenu1.firstEmpty() != -1) {
particlemenu1.addItem(item);
alreadyset.add(item.getItemMeta().getDisplayName().replace(" ", "_"));
}
}
player.openInventory(particlemenu1);
}
return false;
}
}
Die Listener-Klasse:
package de.devfelix.listeners;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.Particle;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import de.devfelix.commands.SpawnParticleCommand;
public class InventoryClickListener implements Listener {
List<String> alreadyset2 = new ArrayList<String>();
@EventHandler
public void onClick(InventoryClickEvent event) {
File invdatafile = new File("plugins/Particle", "InvData.yml");
FileConfiguration invdata = YamlConfiguration.loadConfiguration(invdatafile);
Player player= (Player) event.getWhoClicked();
if(event.getView().getTitle().equalsIgnoreCase("§8» §6Choose Particle! §8| §cSite 1") ||
event.getView().getTitle().equalsIgnoreCase("§8» §6Choose Particle! §8| §cSite 2") ||
event.getView().getTitle().equalsIgnoreCase("§8» §6Choose Particle! §8| §cSite 3")) {
event.setCancelled(true);
if(event.getCurrentItem() != null) {
if(event.getCurrentItem().getType() == Material.BARRIER &&
event.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("§4Exit")) {
player.closeInventory();
}
if(event.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("§6Next Site §8| §c2")) {
Inventory particlemenu2 = Bukkit.createInventory(null, 9*6, "§8» §6Choose Particle! §8| §cSite 2");
for (Particle particle : Particle.values()) {
if(!particle.toString().contains(SpawnParticleCommand.alreadyset.toString())) {
ArrayList<String> particlelore = new ArrayList<String>();
particlelore.add(" ");
particlelore.add("§8» §6Click to Choose!");
ItemStack barrier = new ItemStack(Material.BARRIER, 1);
ItemStack arrow = new ItemStack(Material.OAK_SIGN, 1);
ItemStack glass = new ItemStack(Material.BLUE_STAINED_GLASS_PANE, 1);
ItemStack particleitem = new ItemStack(Material.NETHER_STAR, 1);
ItemMeta glassmeta = glass.getItemMeta();
ItemMeta arrowmeta = glass.getItemMeta();
ItemMeta barriermeta = barrier.getItemMeta();
ItemMeta particlemeta = particleitem.getItemMeta();
arrowmeta.setDisplayName("§6Next Site §8| §c2");
barriermeta.setDisplayName("§4Exit");
glassmeta.setDisplayName(" ");
particlemeta.setDisplayName("§c" + particle.toString().replace("_", " "));
particlemeta.setLore(particlelore);
glass.setItemMeta(glassmeta);
barrier.setItemMeta(barriermeta);
particleitem.setItemMeta(particlemeta);
invdata.set("Items." + particle.toString(), particleitem);
try {
invdata.save(invdatafile);
} catch (IOException e) {
e.printStackTrace();
}
ItemStack item = invdata.getItemStack("Items." + particle.toString());
particlemenu2.setItem(0, glass);
particlemenu2.setItem(1, glass);
particlemenu2.setItem(2, glass);
particlemenu2.setItem(3, glass);
particlemenu2.setItem(4, glass);
particlemenu2.setItem(5, glass);
particlemenu2.setItem(6, glass);
particlemenu2.setItem(7, glass);
particlemenu2.setItem(8, glass);
particlemenu2.setItem(9, glass);
particlemenu2.setItem(17, glass);
particlemenu2.setItem(18, glass);
particlemenu2.setItem(26, glass);
particlemenu2.setItem(27, glass);
particlemenu2.setItem(35, glass);
particlemenu2.setItem(36, glass);
particlemenu2.setItem(44, glass);
particlemenu2.setItem(45, glass);
particlemenu2.setItem(46, glass);
particlemenu2.setItem(47, glass);
particlemenu2.setItem(48, glass);
particlemenu2.setItem(49, glass);
particlemenu2.setItem(50, new ItemStack(Material.OAK_SIGN));
particlemenu2.setItem(51, glass);
particlemenu2.setItem(52, glass);
particlemenu2.setItem(53, barrier);
player.sendMessage(particle.toString());
if(particlemenu2.firstEmpty() != -1) {
particlemenu2.addItem(item);
alreadyset2.add(item.getItemMeta().getDisplayName().replace(" ", "_"));
}
}
}
player.openInventory(particlemenu2);
}else {
if(event.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase("§6Next Site §8| §c3")) {
//3te Seite mache ich noch!
}
}
}
}
}
}
Danke im Vorraus für die Hilfe, und noch einen schönen Abend!