本帖最后由 隔壁老吕 于 2018-5-20 17:52 编辑 
复制代码
- import java.util.List;
 
- import java.util.ArrayList;
 
- import java.util.HashMap;
 
- import org.bukkit.Material;
 
- import org.bukkit.entity.Player;
 
- import org.bukkit.event.EventHandler;
 
- import org.bukkit.event.Listener;
 
- import org.bukkit.inventory.ItemStack;
 
- import org.bukkit.inventory.meta.ItemMeta;
 
- import org.bukkit.event.inventory.InventoryClickEvent;
 
- import org.bukkit.event.inventory.InventoryType;
 
- import org.bukkit.plugin.java.JavaPlugin;
 
 
- public class Baoshi extends JavaPlugin implements Listener{
 
-     HashMap<String, ItemMeta> usingMap = new HashMap<>();
 
-     HashMap<String, ItemStack> firstItemMap = new HashMap<>();
 
-     public ItemMeta baoshi(){
 
-         ItemStack item = new ItemStack(276);
 
-         ItemMeta meta = item.getItemMeta();
 
-         List<String> lore = new ArrayList<>();
 
-         lore.add("xx宝石");
 
-         meta.setDisplayName("xx宝石");
 
-         meta.setLore(lore);
 
-         return meta;
 
-     }
 
-     @EventHandler
 
-     public void InventoryClickEvent(InventoryClickEvent e){
 
-         Player p = (Player)e.getWhoClicked();
 
-         if (e.getRawSlot() < 0) {
 
-             return;
 
-         }
 
-         ItemStack item = e.getCurrentItem();
 
-         ItemMeta meta = item.getItemMeta();
 
-         if (usingMap.containsKey(p.getName()))
 
-         {
 
-             if(e.isRightClick()){
 
-                 if (e.getInventory().getType() != InventoryType.CRAFTING) {
 
-                     p.sendMessage("§c请在背包内右键");
 
-                     return;
 
-                 }
 
 
-                 if ((item == null) || (item.getType().equals(Material.AIR))) {
 
-                     e.setCancelled(true);
 
-                     p.closeInventory();
 
-                     p.sendMessage("镶嵌取消");
 
-                     usingMap.remove(p.getName());
 
-                     return;
 
-                 }
 
-                 ItemStack fitem = firstItemMap.get(p.getName());
 
-                 boolean state = false;
 
-                 if(item.getTypeId() == 0/*镶嵌物品id*/){
 
-                     state = true;
 
-                 }
 
 
-                 if (state == false){
 
-                     e.setCancelled(true);
 
-                     p.sendMessage("不能镶嵌");
 
-                     return;
 
-                 }
 
-                 //code..........
 
-                 p.sendMessage("镶嵌成功");  
 
-                 usingMap.remove(p.getName());
 
-                 firstItemMap.remove(p.getName());
 
-                 int sl = fitem.getAmount() -1;
 
-                 p.getInventory().remove(fitem);
 
-                 ItemStack add = fitem;
 
-                 add.setAmount(sl);
 
-                 p.getInventory().addItem(add);
 
-                 e.setCancelled(true);
 
-                 p.closeInventory();
 
-             }
 
-         } else {
 
-             if (e.isRightClick()){
 
-                 if (meta == baoshi()){
 
-                     usingMap.put(p.getName(), meta);
 
-                     firstItemMap.put(p.getName(), item);
 
-                     p.sendMessage("正在镶嵌");
 
-                     e.setCancelled(true);
 
-                     p.closeInventory();
 
-                 }
 
-             }
 
-         }
 
-     }
 
- }
2021.12 数据,可能有更多内容
本帖最后由 隔壁老吕 于 2018-5-20 17:52 编辑代码:
- import java.util.List;
 
- import java.util.ArrayList;
 
- import java.util.HashMap;
 
- import org.bukkit.Material;
 
- import org.bukkit.entity.Player;
 
- import org.bukkit.event.EventHandler;
 
- import org.bukkit.event.Listener;
 
- import org.bukkit.inventory.ItemStack;
 
- import org.bukkit.inventory.meta.ItemMeta;
 
- import org.bukkit.event.inventory.InventoryClickEvent;
 
- import org.bukkit.event.inventory.InventoryType;
 
- import org.bukkit.plugin.java.JavaPlugin;
 
 
- public class Baoshi extends JavaPlugin implements Listener{
 
-     HashMap<String, ItemMeta> usingMap = new HashMap<>();
 
-     HashMap<String, ItemStack> firstItemMap = new HashMap<>();
 
-     public ItemMeta baoshi(){
 
-    ItemStack item = new ItemStack(276);
 
-    ItemMeta meta = item.getItemMeta();
 
-    List<String> lore = new ArrayList<>();
 
-    lore.add("xx宝石");
 
-    meta.setDisplayName("xx宝石");
 
-    meta.setLore(lore);
 
-    return meta;
 
-     }
 
-     @EventHandler
 
-     public void InventoryClickEvent(InventoryClickEvent e){
 
-    Player p = (Player)e.getWhoClicked();
 
-    if (e.getRawSlot() < 0) {
 
-       return;
 
-    }
 
-    ItemStack item = e.getCurrentItem();
 
-    ItemMeta meta = item.getItemMeta();
 
-    if (usingMap.containsKey(p.getName()))
 
-    {
 
-       if(e.isRightClick()){
 
-         if (e.getInventory().getType() != InventoryType.CRAFTING) {
 
-        p.sendMessage("§c请在背包内右键");
 
-        return;
 
-         }
 
 
-         if ((item == null) || (item.getType().equals(Material.AIR))) {
 
-        e.setCancelled(true);
 
-        p.closeInventory();
 
-        p.sendMessage("镶嵌取消");
 
-        usingMap.remove(p.getName());
 
-        return;
 
-         }
 
-         ItemStack fitem = firstItemMap.get(p.getName());
 
-         boolean state = false;
 
-         if(item.getTypeId() == 0/*镶嵌物品id*/){
 
-        state = true;
 
-         }
 
 
-         if (state == false){
 
-        e.setCancelled(true);
 
-        p.sendMessage("不能镶嵌");
 
-        return;
 
-         }
 
-         //code..........
 
-         p.sendMessage("镶嵌成功");
 
-         usingMap.remove(p.getName());
 
-         firstItemMap.remove(p.getName());
 
-         int sl = fitem.getAmount() -1;
 
-         p.getInventory().remove(fitem);
 
-         ItemStack add = fitem;
 
-         add.setAmount(sl);
 
-         p.getInventory().addItem(add);
 
-         e.setCancelled(true);
 
-         p.closeInventory();
 
-       }
 
-    } else {
 
-       if (e.isRightClick()){
 
-         if (meta == baoshi()){
 
-        usingMap.put(p.getName(), meta);
 
-        firstItemMap.put(p.getName(), item);
 
-        p.sendMessage("正在镶嵌");
 
-        e.setCancelled(true);
 
-        p.closeInventory();
 
-         }
 
-       }
 
-    }
 
-     }
 
- }