Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.thebukkitarea.globalInventory;
- import java.util.Map.Entry;
- import org.bukkit.Bukkit;
- import org.bukkit.Material;
- import org.bukkit.command.Command;
- 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;
- import org.bukkit.plugin.java.JavaPlugin;
- public class GlobalInventoryPlugin extends JavaPlugin {
- private Inventory global;
- @Override
- public void onEnable() {
- global = Bukkit.createInventory(null, 9*6, "Global Inventory");
- loadInventoryFromConfig();
- }
- @Override
- public void onDisable() {
- saveInventoryToConfig();
- }
- @Override
- public boolean onCommand(CommandSender sender, Command command,
- String label, String[] args) {
- if (!(sender instanceof Player)) {
- sender.sendMessage("You can't use this command.");
- return true;
- }
- Player player = (Player) sender;
- player.openInventory(global);
- return true;
- }
- private void clearConfig() {
- for (String main_path : getConfig().getKeys(false)) {
- getConfig().set(main_path, null);
- }
- }
- private void saveInventoryToConfig() {
- clearConfig();
- for (int slot = 0; slot < global.getSize(); slot++) {
- ItemStack stack = global.getItem(slot);
- if (stack == null || stack.getType() == Material.AIR) {
- continue;
- }
- getConfig().set(String.valueOf(slot), stack.serialize());
- }
- saveConfig();
- }
- private void loadInventoryFromConfig() {
- for (Entry<String, Object> entry : getConfig().getValues(false).entrySet()) {
- int slot;
- try { slot = Integer.parseInt(entry.getKey()); }
- catch (NumberFormatException ex) {
- getLogger().severe("An error has occurred while parsing slot " + entry.getKey());
- continue;
- }
- if (slot + 1 >= global.getSize()) {
- getLogger().severe("Slot " + slot + " cannot be in the inventory");
- continue;
- }
- MemorySection memorySection = (MemorySection) entry.getValue();
- ItemStack deserialized = ItemStack.deserialize(memorySection.getValues(false));
- global.setItem(slot, deserialized);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement