package net.brennholz.challenges;
import java.util.Iterator;
import java.util.Map;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.MemorySection;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
public class Backpack implements CommandExecutor {
private Challenges chl = Challenges.getplugin();
public Inventory Backpack = Bukkit.createInventory(null, 54, "§6Backpack");
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (sender instanceof Player) {
Player p = (Player) sender;
if (p.hasPermission("challenges.backpack")) {
p.openInventory(Backpack);
} else
p.sendMessage("§cDu hast hierfür keine Berechtigung");
} else
sender.sendMessage("§cKein Konsolenbefehl!");
return true;
}
@SuppressWarnings("rawtypes")
public void clearConfig() {
Iterator var2 = chl.getBackpackConfig().getKeys(false).iterator();
while (var2.hasNext()) {
String main_path = (String) var2.next();
chl.getBackpackConfig().set(main_path, null);
}
}
public void saveInventoryToConfig() {
clearConfig();
for (int slot = 0; slot < this.Backpack.getSize(); slot++) {
ItemStack stack = this.Backpack.getItem(slot);
if ((stack != null) && (stack.getType() != Material.AIR)) {
chl.getBackpackConfig().set(String.valueOf(slot), stack.serialize());
}
}
}
@SuppressWarnings("rawtypes")
public void loadInventoryFromConfig() {
Iterator var2 = chl.getBackpackConfig().getValues(false).entrySet().iterator();
int slot;
while (var2.hasNext()) {
Map.Entry entry = (Map.Entry) var2.next();
try {
slot = Integer.parseInt((String) entry.getKey());
} catch (NumberFormatException var6) {
chl.getServer().broadcastMessage("Fehler! Slot: " + (String) entry.getKey());
continue;
}
if (slot >= this.Backpack.getSize()) {
chl.getServer().broadcastMessage("§cSlot " + slot + " befindet sich außerhalb des Inventars!");
} else {
MemorySection memorySection = (MemorySection) entry.getValue();
ItemStack deserialized = ItemStack.deserialize(memorySection.getValues(false));
this.Backpack.setItem(slot, deserialized);
}
}
}
}