Skip to content

Instantly share code, notes, and snippets.

@IDragonfire
Created July 15, 2014 00:07
Show Gist options
  • Save IDragonfire/f03e22c6af15ad219cba to your computer and use it in GitHub Desktop.
Save IDragonfire/f03e22c6af15ad219cba to your computer and use it in GitHub Desktop.
package com.github.idragonfire.dragonchestui;
import java.util.Arrays;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.DyeColor;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryCloseEvent;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;
public class DChestUi_Plugin extends JavaPlugin implements Listener {
@Override
public void onEnable() {
Bukkit.getPluginManager().registerEvents(this, this);
}
@EventHandler
public void test(PlayerCommandPreprocessEvent event) {
if (!(event.getMessage().contains("test"))) {
Bukkit.broadcastMessage("what");
return;
}
Bukkit.broadcastMessage("open inv");
Player player = event.getPlayer();
// max = 6
final Inventory inventory = Bukkit.createInventory(player, 9 * 6,
"testinv");
ItemStack item1 = new ItemStack(Material.WOOL, 1,
DyeColor.LIME.getWoolData());
ItemMeta meta = item1.getItemMeta();
meta.setDisplayName(ChatColor.GOLD + "Option 1");
meta.setLore(Arrays.asList(new String[] { ChatColor.WHITE + "lala",
"ddada" }));
item1.setItemMeta(meta);
inventory.setItem(1 + 9 * 1, item1);
inventory.setItem(1 + 9 * 2, new ItemStack(Material.DIAMOND_SWORD, 1,
DyeColor.ORANGE.getWoolData()));
inventory.setItem(1 + 9 * 3, new ItemStack(Material.WOOL, 1,
DyeColor.RED.getWoolData()));
player.openInventory(inventory);
Bukkit.getPluginManager().registerEvents(new RestrictInventory(player),
this);
}
public class RestrictInventory implements Listener {
private Player player;
public RestrictInventory(Player player) {
this.player = player;
}
@EventHandler
public void interact(InventoryClickEvent event) {
InventoryHolder holder = event.getInventory().getHolder();
if (!(holder instanceof Player) || ((Player) holder) != player) {
return;
}
event.setCancelled(true);
if (event.getCurrentItem().getType() == Material.AIR) {
return;
}
((Player) holder).closeInventory();
// call custom event
}
@EventHandler
public void close(InventoryCloseEvent event) {
InventoryHolder holder = event.getInventory().getHolder();
if (!(holder instanceof Player) || ((Player) holder) != player) {
return;
}
HandlerList.unregisterAll(this);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment