-
Notifications
You must be signed in to change notification settings - Fork 4
Simple Virtual Inventory
Alexander edited this page Sep 29, 2019
·
3 revisions
Java edition only!
Due to Bedrock Edition doesn't have forms instead!
Here we have a basic inventory with a diamond in a middle and a listener that will trigger when someone clicks on it!
//Registering a command
manager.createCommand("Menu", "A Simple Menu", "menuCommand");
function menuCommand(sender, args){
//Casting command as an player
var player = cast.asPlayer(sender);
//Creating an inventory
var inventory = org.bukkit.Bukkit.createInventory(null, 9, "Test!");
//Creating an Item
var testItem = material.newItemStack(material.get(264));
//Setting item name
material.setName(testItem, "REEEE");
//Setting item lore
material.setLore(testItem, ["line 1", "line 2", "line 3"]);
//Putting item into our virtual inventory
inventory.setItem(4, testItem);
//Opening the inventory for our player
player.openInventory(inventory);
}
//Listening for Inventory clicks
function InventoryClickEvent(event){
//Getting event inventory name
var invName = event.getInventory().getName(); //For 1.8-1.12
var invName = event.getView().getTitle(); //For 1.13+
//Checking if its our virtual inventory named "Test!"
if(invName == "Test!"){
//Cancelling the event so the player cant take any items etc
event.setCancelled(true);
//Getting our player
var player = cast.asPlayer(event.getWhoClicked());
//Getting the clicked item
var clickedItem = event.getCurrentItem();
//Checking if our player closed the inventory or didnt click on an item
if(clickedItem != null || clickedItem.getType() != material.get(0)){
//Getting item meta
var clickedItemMeta = clickedItem.getItemMeta();
//Sending some basic information such as name and lore
player.sendMessage("You've clicked on " + clickedItemMeta.getDisplayName());
player.sendMessage("With lore:");
//Getting lore
var lores = clickedItemMeta.getLore();
//Looping the lore
for(var lore in lores){
//sending our lores invidually
player.sendMessage(lores[lore]);
}
}
}
}